Python 用列表理解填充词典

Python 用列表理解填充词典,python,dictionary,list-comprehension,Python,Dictionary,List Comprehension,我正在尝试使用列表中的键来填充字典d e、 g 但是, ValueError: dictionary update sequence element #0 has length 1; 2 is required 如何获得d={'a_uk':[1,2],'v_uk':[1,2]}? 为什么这是一个错误?在Python的现代版本中,您可以创建具有字典理解功能的字典: {x: '%s__k' % x for x in names} 请注意,我更喜欢使用字符串%运算符,而不是串联。在我看来,它的效率

我正在尝试使用列表中的键来填充字典
d
e、 g

但是,

ValueError: dictionary update sequence element #0 has length 1; 2 is required
如何获得
d={'a_uk':[1,2],'v_uk':[1,2]}

为什么这是一个错误?

在Python的现代版本中,您可以创建具有字典理解功能的字典:

{x: '%s__k' % x for x in names}

请注意,我更喜欢使用字符串%运算符,而不是串联。在我看来,它的效率稍高一些,但也更容易阅读。

在Python的现代版本中,您可以创建具有词典理解功能的词典:

{x: '%s__k' % x for x in names}

请注意,我更喜欢使用字符串%运算符,而不是串联。在我看来,它的效率稍高一些,但也更容易阅读。

您可以通过使用

应该很好用。如果需要更新
d
,则可以执行以下操作:

d.update({n+'__k':[1,2] for n in names})

您可以通过使用

应该很好用。如果需要更新
d
,则可以执行以下操作:

d.update({n+'__k':[1,2] for n in names})

我真的不明白为什么你想通过列表理解而不是简单的循环来更新字典?为什么不使用字典理解?还有,你有一个拼写错误:更新后你从不关闭括号,所以它被解释为一个生成器表达式。亨特:括号不匹配。@Willem Van Onsem你说得对。我真的不明白为什么你想通过列表理解而不是简单的循环来更新字典?为什么不使用字典理解?另外,你有一个拼写错误:更新后你从不关闭括号,所以它被解释为一个生成器表达式。亨特:括号不匹配。@Willem Van Onsem你是对的