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)

伟大的谢谢,把它放在一个列表中就像我期待的那样。太好了!谢谢,把它放在一个列表中正如我所期待的那样。这样做每次迭代只会在元组中产生一个项,而不是我想要的。不过,感谢您的快速响应。这样做每次迭代只会在元组中生成一个项,这并不是我想要的。谢谢你的快速回复。