(13)转换列表、字典

 转换列表: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就行了:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值