|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
>>> list(zip([1,2,3],[10,20,30]))
[(1, 10), (2, 20), (3, 30)]
>>> zip([1,2,3],[10,20,30])
<zip object at 0x00000289D4A55700>
>>> dict(zip([1,2,3],[10,20,30]))
{1: 10, 2: 20, 3: 30} #为什么这里可以直接zip而不需要加list
>>> dict(list(zip([1,2,3],[10,20,30])))
{1: 10, 2: 20, 3: 30} #这个我能理解,把第一行的list(zip([1,2,3],[10,20,30]))值——[(1, 10), (2, 20), (3, 30)] 带入就是一个创建字典的方法,但是为什么不加list也可以呢
为什么可以直接dict(zip([],[])),而不需要加list,不是说只能有一个对象吗(所以才会中间那层括号dict(([],[]))),但是不加list的话,还是一个对象吗
本帖最后由 isdkz 于 2022-3-14 15:28 编辑
嗯嗯,可迭代对象都可以,
还有就是这个可迭代对象要一次能迭代且只能迭代出包含两个元素的序列(这里你没看错,就是序列,包含字符串),你可以试试这个 :
- test = dict(('ab',))
- print(test)
复制代码
而且迭代出的序列中第一个元素不能是可变对象或包含可变对象,因为可变对象不能做字典的键
|
|