Python 用dict迭代元组
迭代元组时遇到问题,例如:Python 用dict迭代元组,python,python-3.x,python-3.4,Python,Python 3.x,Python 3.4,迭代元组时遇到问题,例如: t = ('a','b',{'c':'d'}) for a,b,c in t: print(a,b,c) # ValueError: not enough values to unpack (expected 3, got 1) for a,b,*c in t: print(a,b,c) # ValueError: not enough values to unpack (expected 2, got 1) for a,b,**c in t:
t = ('a','b',{'c':'d'})
for a,b,c in t:
print(a,b,c) # ValueError: not enough values to unpack (expected 3, got 1)
for a,b,*c in t:
print(a,b,c) # ValueError: not enough values to unpack (expected 2, got 1)
for a,b,**c in t:
print (a,b,c) # Syntax error (can't do **c)
有人知道我如何保持字典的价值吗?我希望看到
a='a',b='b'和c={'c':'d'}
您需要将t
放在其他可移植容器中:
for a, b, c in [t]:
print(a, b, c)
您尝试的问题是,每个on都在迭代t
中的单个元素,并试图将其解包。e、 g.循环的第一圈是尝试将'a'
解包到三个位置(a
、b
和c
)
显然,直接解包也可能更好(不需要循环):
您需要将
t
放在另一个iterable容器中:
for a, b, c in [t]:
print(a, b, c)
您尝试的问题是,每个on都在迭代t
中的单个元素,并试图将其解包。e、 g.循环的第一圈是尝试将'a'
解包到三个位置(a
、b
和c
)
显然,直接解包也可能更好(不需要循环): 试试这个:
for a,b,c in [t]:
print(a,b,c)
将t
放入列表将允许您将其解压缩。尝试以下操作:
for a,b,c in [t]:
print(a,b,c)
将t
放入列表将允许您将其解压缩。试试这个
for x in t:
print(x)
x
将迭代地获取t
中的所有值,因此'a'
,然后'b'
,最后{'c':'d'}
要准确打印a='a'
等,您可以执行以下操作:
for param, val in zip(["a","b","c"], t):
print(param,"=",val)
试试这个
for x in t:
print(x)
x
将迭代地获取t
中的所有值,因此'a'
,然后'b'
,最后{'c':'d'}
要准确打印a='a'
等,您可以执行以下操作:
for param, val in zip(["a","b","c"], t):
print(param,"=",val)
当它是一个
元组时,为什么要进行迭代?只要打开单个元组
,如果您需要这样做:
a, b, c = t
print(a, b, c)
或者,如果只是打印,您希望在调用本身中执行解包:
print(*t)
当它是一个元组时,为什么要进行迭代?只要打开单个元组
,如果您需要这样做:
a, b, c = t
print(a, b, c)
或者,如果只是打印,您希望在调用本身中执行解包:
print(*t)
可以将元组解包与多个赋值一起使用:
a, b, c = t
print(a, b, c)
可以将元组解包与多个赋值一起使用:
a, b, c = t
print(a, b, c)
伟大的谢谢,把它放在一个列表中就像我期待的那样。太好了!谢谢,把它放在一个列表中正如我所期待的那样。这样做每次迭代只会在元组中产生一个项,而不是我想要的。不过,感谢您的快速响应。这样做每次迭代只会在元组中生成一个项,这并不是我想要的。谢谢你的快速回复。