我正在尝试使用 python,并且一直试图在我正在做的事情的上下文中理解错误消息。
我正在玩理解并试图找到一种模式来创建具有多个输入集的列表/字典理解(假设这是可能的):
注意:这里的词输入集是指理解的输入区域。在 setbuilder 表示法中,python 从中派生出它的推导 [Y for X in LIST],Y 是输出函数,X 是变量,LIST 是输入集。
假设我有以下工作代码:
from random import randint
mydict = {k: 0 for k in range(10)}
result = {randint(0,9): v + 1 for v in mydict.values()}
我不想对此做任何特别的事情。这甚至不是有用的代码,因为它不会按预期工作。字典中的所有元素都将具有值 1,而不仅仅是随机生成器指向的那些。我唯一的目标是从我开始尝试使用输入集的元组开始。
from random import randint
mydict = {k: 0 for k in range(10)}
result = {k: v + 1 for k, v in (randint(0,9), mydict.values())}
这个选项给了我:TypeError: 'int' object is not iterable
。
通过交换输入集和解包我有:
result = {k: v + 1 for *v, k in (mydict.values(), randint(0,9))}
但是这个选项给了我:TypeError: can only concatenate list (not "int") to list
出现这些错误是因为我试图做一些语言语法不理解的事情,还是我遗漏了一些东西而我实际上可以修复代码?