扣丁学堂浅谈Python中元组、列表、字典的遍历和相互转化详解

一叶不知秋 2018-01-23

今天扣丁学堂给大家总结了一下关于在Python中元组(tuple),列表(list)和字典(dict)的介绍,相信很多同学在学Python基础教程时会经常用到,它们的遍历和之间的相互转换在使用中也非常重要,下面我们一起来看一下吧。

扣丁学堂浅谈Python中元组、列表、字典的遍历和相互转化详解

一、元组,列表,字典的遍历

1.1 元组的遍历

元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历,代码如下:

[python] view plain copyfruits=("apple","banana","orange")

for i in range(len(fruits)):

print(fruits[i])

* 注意:元组是无法进行重新赋值的,需要将元组进行转换后在进行重新赋值,如转换为list,下面会展示如何转换。

1.2 列表的遍历

列表的遍历可以直接使用for循环,也可以借助 range() 函数,代码如下:

[python] view plain copy#直接遍历

fruit_list = ['apple','banana','orange']

for fruit in fruit_list:

print(fruit)

#借助range()函数进行遍历

fruit_list = ['apple','banana','orange']

for i in range(len(fruit_list)):

print(fruit_list[i])

1.3 字典的遍历

字典的遍历主要借助于字典中的key值,代码如下:

[python] view plain copyfruit_dict = {'apple':1, 'banana':2, 'orange':3}

for key in fruit_dict:

print(fruit_dict[key])

上面介绍的是这三者最简单的遍历方法,还有其他的遍历方法没有涉及到,当然,无论怎么变化,都可以使用这几种方法进行处理。

二、元组,列表,字典之间的转换

这三者之间的转换并不复杂,但字典的转换由于有key的关系,因此其他二者不能转换为字典 。

2.1 对元组进行转换

[python] view plain copyfruits = ('apple','banana','orange')

#元组转换为列表:

list(fruit)

#元组不能直接转换为字典,附:

#元组转换为字符串:

fruits.__str__()

2.2 对列表的转换

[python] view plain copyfruit_list = ['apple','banana','orange']

#列表转换为元组:

tuple(fruit_list)

#列表不能直接转换为字典,附:

#列表转换为字符串:

str(fruit_list)

2.3 对字典的转换

可以使用函数 tuple() 和 list() 将字典转换为元组和列表,但要注意的是,这里的转换后和之前的元素顺序是不同的,因为字典类似于散列,列表 类似于链表,元组类似于列表只是元素无法改变,所以,要把散列转换为链表而顺序不变是不可行的。但可以借助于有序字典OrderedDict,有序字 典是字典的子类,它可以记住元素添加的顺序,从而得到有序的字典。有序字典这里就不深入探讨,给出普通字典的例子参考,代码如下:

[python] view plain copyfruit_dict = {'apple':1, 'banana':2, 'orange':3}

#将字典的key转换为元组:

tuple(fruit_dict)

#将字典的value转换为元组:

tuple(fruit_dict.value())

#将字典的key转换为列表:

list(fruit_dict)

#将字典的value转换为列表:

list(fruit_dict.value())

#附:

#将字典转换为字符串:

str(fruit_dict)

2.4 附:对字符串的转换

要将字符串转换为指定的数据结构,那么字符串就必须符合指定数据结构的格式,并借助于 eval() 函数

[python] view plain copy#将字符串转换为元组:

str = "(1,2,3)"

tuple(eval(str))

#将字符串转换为列表:

str = "(1,2,3)"

list(eval(str))

#将字符串转换为字典:

str = "{'a':1 ,'b',2}"

eval(str)

以上就是关于Python中元组、列表、字典的遍历和相互转化详解,最后想要了解更多关于Python发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Python培训视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的第一套自适应Python在线视频课程系统,让你快速掌握Python从入门到精通开发实战技能。扣丁学堂Python技术交流群:279521237。

相关推荐