转换列表:list--->list
#方法一
a=[1,2,3,4,5,6,7]
b=[]
for i in a:
if i>2:
b.append(i)
b
#方法二
[i for i in a if i > 2]
字符串转换列表:str--->list
str='1234567'
[int(i) for i in str if int(i) > 2]
转换字典:
#dict={key1:value1,key2:value2...}
{i:"hello" for i in a if i > 2}
列表与字典的转换: list<--->dict
list->dict
方法一、通过zip函数:
刚好我在学习的过程中遇到一个这样的错误,一起分享出来:
TypeError: 'dict' object is not callable
解决这个问题的方法是:
#错误
dict1=dict(zip(a1,a2))
#正确
dict1=dict[zip(a1,a2)]
改了之后又会报这个错误:
KeyError: <zip object at 0x0000016AAC7A1A88>
这个问题的原因是python2和python3的语法不一样,python3里,zip后的结果是一个遍历对象。正确的使用方法如下:
方法二、通过循环实现
dict3={}
for i in range(2):
dict3[a1[i]]=a2[i]
dict3
方法三、enumerate
dic={}
for index,value in enumerate(list1):
if index<2:
print(index)
print(value)
dic[value]=list1[index+2]
dic
dict->list:
报错:
TypeError: must be str, not int
解决方法:
Python3的keys(), values(), items()返回的都是迭代器,如果需要像Python2一样返回列表,只要传给list就行了: