你不能在一条线上做你想做的事。您可以在一行上创建一个新字典:
{k: collection[k] + [v] for k, v in zip(collection.keys(), values)}
结果:
>>> collection = {'a':[], 'b':[], 'c':[]}
>>> values = [1,2,3]
>>> {k: collection[k] + [v] for k, v in zip(collection.keys(), values)}
{'a': [1], 'c': [2], 'b': [3]}
这称为dict 理解。就像列表推导和生成器表达式一样,您可以在其中一个中使用多个循环,但这里不需要一个。会将键 from与 中的整数zip()配对。collectionvalues
要dict就地修改,您必须至少使用 2 行:
for k, v in zip(collection.keys(), values):
collection[k].append(v)
Python 确实接受了这一点,但这与我可以为您查找的几乎所有样式指南背道而驰:
for k, v in zip(collection.keys(), values): collection[k].append(v)
Python 会引发语法错误,因为它将您的行解释为表达式的元组(逗号使其成为元组),并且您的两个表达式是for语句,不能在表达式中使用。