标题描述了问题,这是我尝试过的,这不是给我预期的重新安排..问题出在哪里?
for name in file:
if name in list:
if dict.has_key(param):
dict[param] = [dict[param],name]
else:
dict[param] = name
期待输出:
dict = {
'param1': ['name11', 'name12', 'name13'],
'param2': ['name21', 'name22', 'name23'],
.
.
.
}
答案 0 :(得分:3)
您需要将这些名称附加到列表中。以下是一个简单的例子,可能会破坏。
for name in file:
if name in list:
if dict.has_key(param):
dict[param].append(name)
else:
dict[param] = [name]
或者如果你想变得更干净,可以使用collections.defaultdict
。如果你问我,这就是pythonic方式。
d = collections.defaultdict(list)
for name in file:
if name in lst: # previously overwrote list()
d[param].append(name)
请不要使用您自己的变量覆盖内置dict()
或list()
函数。
答案 1 :(得分:0)
您正在寻找一张多地图,即一张没有钥匙的地图或字典 - >价值关系但关键 - >许多价值观,见: