我有名单
list_keys = ['a', 'b', 'c']
list_a = ['a', 'a1', 'a2']
list_c = ['c', 'c1', 'c2']
我需要py解决方案,将创建一个使用list_keys
元素作为键和list_a
,list_c
作为值的dict。脚本应该查看list_keys
,并根据list_a
的第一个元素匹配值,list_c
。此外,它应该让list_keys
中的元素与其他列表中的第一个值不匹配。在此处查看所需的输出:
{'a' : ['a', 'a1', 'a2'],
'b' : [],
'c' : ['c', 'c1', 'c2']}
我的代码片段不能正常工作,如果可能的话,我希望避免组合列表(cmb
)
list_keys = ['a', 'b', 'c']
list_a = ['a', 'a1', 'a2']
list_c = ['c', 'c1', 'c2']
cmb = list_a, list_c
d = {}
for k,v in zip(list_keys, cmb):
d[k] = v
print(d)
错误输出:
{'a': ['a', 'a1', 'a2'],
'b': ['c', 'c1', 'c2']}
3条答案
按热度按时间8nuwlpux1#
这个例子对我来说似乎很奇怪,因为
list_a, list_c
是根据它们的内容命名的,所以我将改变结构以反映我如何理解实际问题(并避免shadowinglist
):所以现在很清楚,我们可以从
values
中获取每个第一个元素,并使用它来访问我们使用keys
中的键创建的现有dict。结果:
rqqzpn5f2#
我最初的解决方案包括组合列表(使将来添加更多列表更方便,并且还支持使用循环来迭代列表)。在这里,我将给予两个片段:
使用组合列表
不合并列表
另外,只是一个提示,注意变量名
list
是如何着色的?这是因为list
是一个 * 内置函数 * 的名称-建议 * 不要 * 将其用作变量名。(在本例中,函数list()
不起作用,因为我们使用它作为变量名!)bvpmtnay3#
字典和列表解析的组合: