以下是对Python中元组(tuple),列表(list)和字典(dict)的遍历和相互转换,供大家参考学习:
一、元组,列表,字典的遍历
1.1 元组的遍历
元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历,代码如下:
tuple=("value1","value2","value3")
for i in range(len(tuple)):
print(tuple[i])
for i in tuple:
print(i)
* 注意:元组是无法进行重新赋值的,需要将元组进行转换后在进行重新赋值,如转换为list,下面会展示如何转换。
1.2 列表的遍历
列表的遍历可以直接使用for循环,也可以借助 range() 函数,代码如下:
#直接遍历
list = ['value1','value2','value3']
for i in list:
print(i)
#借助range()函数进行遍历
list = ['value1','value2','value3']
for i in range(len(list)):
print(list[i])
1.3 字典的遍历
字典的遍历主要借助于字典中的key值,代码如下:
# 循环迭代键
dict = {'key1':value1, 'key2':value2, 'key3':value3, }
for key in dict:
print(dict[key])
#下面和上面的一样,这两个遍历的是键,循环迭代值只需把keys换成values就行了
# for key in dict.keys():
# print(key)
同时遍历键—值对,使用items方法可以将键-值对作为元组放回,for循环的一大好处就是可以在循环中使用序列解包代码如下:
d = {'x':1,'y':2,'z':3}
for key,value in d.items():
print(key,':',value)
上面介绍的是这三者最简单的遍历方法,还有其他的遍历方法没有涉及到,当然,无论怎么变化,都可以使用这几种方法进行处理。
二、元组,列表,字典之间的转换
这三者之间的转换并不复杂,但字典的转换由于有key的关系,因此其他二者不能转换为字典 。
2.1 对元组进行转换
tuple = ('value1','value2','value3')
#元组转换为列表:
list(tuple)
#元组不能直接转换为字典,附:
#元组转换为字符串:
list.__str__()
2.2 对列表的转换
list = ['value1','value2','value3']
#列表转换为元组:
tuple(list)
#列表不能直接转换为字典,附:
#列表转换为字符串:
str(list)
2.3 对字典的转换
可以使用函数 tuple() 和 list() 将字典转换为元组和列表,但要注意的是,这里的转换后和之前的元素顺序是不同的,因为字典类似于散列,列表 类似于链表,元组类似于列表只是元素无法改变,所以,要把散列转换为链表而顺序不变是不可行的。但可以借助于有序字典OrderedDict,有序字 典是字典的子类,它可以记住元素添加的顺序,从而得到有序的字典。有序字典这里就不深入探讨,给出普通字典的例子参考,代码如下:
dict = {'key1':value1,'key2':value2, 'key3':value3}
#将字典的key转换为元组:
tuple(dict)
#将字典的value转换为元组:
tuple(dict.value())
#将字典的key转换为列表:
list(dict)
#将字典的value转换为列表:
list(dict.value())
#附:
#将字典转换为字符串:
str(dict)
2.4 附:对字符串的转换
要将字符串转换为指定的数据结构,那么字符串就必须符合指定数据结构的格式,并借助于 eval() 函数
#将字符串转换为元组:
str = "(1,2,3)"
tuple(eval(str))
#将字符串转换为列表:
str = "(1,2,3)"
list(eval(str))
#将字符串转换为字典:
str = "{'a':1 ,'b',2}"
eval(str)