【发布时间】:2020-06-20 17:38:39
【问题描述】:
我有以下元组 tup 并想将其转换为字典。
我找到了似乎有效的代码。但是当我尝试自己的 for 循环时,我得到了一个错误。
有人可以向我解释为什么dict(y,x) 在第一次打印中被允许,但另一个给出了例外?
tup = ((2,'x'),(3,'a'))
#CORRECT CODE
print(dict((y, x) for x, y in tup)) #output: {'x':2, 'a':3}
#my own for loop, that throws the type error
for x, y in tup:
print(dict(y,x)) #output: TypeError dict expected at most
# 1 argument, got 2
这两个循环的区别在哪里?
【问题讨论】:
-
第一个不是
dict(y, x),是dict((y, x) for x, y in tup)。 -
你能得到的最接近的是
print(dict([(y,x)])) -
首先,您不能指望通过反复
printing 将任何内容“转换”为其他任何内容。您应该确保您了解在屏幕上显示某些内容与实际进行计算之间的区别。
标签: python python-3.x dictionary for-loop typeerror