1、字典的一般转化(18)
dict()
out: {}
dict(a=1,b=2)
out: {'a': 1, 'b': 2}
2、zip函数将列表转为字典(18)
(1)zip函数用于处理列表,先将数据配对,转化为元组。
主要有两种情况,一个是zip过程,一个是unzip过程。
具体可以看下:
####zip过程
a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
abc=zip(a,b,c) #这里Python2和3不一样,这里abc是可迭代的元组集合
for i in abc:
print(i)
out:
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
####unzip过程
u=zip(*abc)
for j in u:
print(j)
out:
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
####直接列表也是可以的
abc=zip(a,b,c) #这里Python2和3不一样,这里abc是可迭代的元组集合
z1=list(abc)
print(z1)
out: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
(2)zip处理后的数据集转为字典
a=[1,2,3]
b=[4,5,6]
ab=zip(a,b) #这里Python2和3不一样,这里abc是可迭代的元组集合
z1=list(ab) #转化为列表
z2=dict(z1) #转化为字典,一定要注意每个元组只有2个元素
print(z1)
print(z2)
out:
[(1, 4), (2, 5), (3, 6)]
{1: 4, 2: 5, 3: 6}
3、查看对象的所有方法(19)
(1)在上面的分析过程,刚开始就碰到一个报错:
a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
abc=zip(a,b,c) #这里Python2和3不一样,这里abc是可迭代的元组集合
print(abc)
out: <zip object at 0x7f3fbc1543c8>
这是由于,python2和3的不同造成的。python2中,可以直接打印一个列表,python3相对严谨和灵活一些,只是产生一个可迭代对象,后续可以按照个人意愿自己编辑。
(2)怎样判断它是不是可迭代对象呢?
dir(abc)
out:
['__class__',
'__delattr__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__lt__',
'__ne__',
'__new__',
'__next__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__']
通过上面的 '__iter__'和 '__next__'基本就可以判断了。
网友评论