在字典中解压元组

2024-09-27 21:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字典为什么不拆包?在

字典的构建如下:

cutDict = {'scene1': [('scene3', 1001, 1125)]} 

我试着把它拆开,就像:

^{pr2}$

但这会导致:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack

现在我正在通过以下方式创建词典:

cutDict.setdefault(itm, [])
for cutItm in itm.cut_items_ordered:
    cutInOut = (mostcutItm, recentcutItm.cut_item_in, callcutItm.cut_item_out)
    cutDict[itm].append(cutInOut): 

Tags: inmost字典callitemlastcuttraceback
1条回答
网友
1楼 · 发布于 2024-09-27 21:26:50

你的值不是一个元组,而是一个包含一个元素的列表,它是一个元组;嵌套的元组有3个元素。因为外部容器只有一个元素,所以解包分配失败。在

如果始终只有一个元素,则通过添加另一个层,以下方法确实有效:

for key, ((cut, fIn, fOUT),) in cutDict.iteritems():

也可以使用列表语法:

^{pr2}$

演示:

^{3}$

或者,移除嵌套,外部列表是多余的。在

如果你的字典真的可以有一个以上的条目,那么外部列表当然不是多余的,但是你也不能使用iterable unpacking。您必须添加另一个循环:

for key, cuts in cutDict.iteritems():
    for cut, fIn, fOUT in cuts:
        # ...

相关问题 更多 >

    热门问题