有 3 个列表,一个我用作键,其余的都是值
keys = ['key1', 'key2', 'key3', 'key4']
list1 = ['network', 'pingworker', 'vpc', 'solution', 'ops', '1', '2', '3']
list2 = ['vlan', 'nms', 'jds', 'zabbix', '4', '5', '6', 'pqr', '8', '2', '2', '3sd']
abc = {}
abc = dict(zip(keys[0], list1))
print(abc)
我得到的输出是:
{'k': 'network', 'y': 'vpc', 'e': 'pingworker', '1': 'solution'}
我需要的是:
{'key1': 'network', 'pingworker', 'vpc', 'solution', 'ops', '1', '2', '3'}
同样:
{'key2': 'vlan', 'nms', 'jds', 'zabbix', '4', '5', '6', 'pqr', '8', '2', '2', '3sd'}
试试这个:
abc = dict(zip(keys, [list1,list2]))
print(abc)
输出:
{'key2': ['vlan', 'nms', 'jds', 'zabbix', '4', '5', '6', 'pqr', '8', '2', '2', '3sd'], 'key1': ['network', 'pingworker', 'vpc', 'solution', 'ops', '1', '2', '3']}
我想你想要{'key1':[],'key2':[]}
你甚至可以简单地做:
keys = ['key1', 'key2', 'key3', 'key4']
list1 = ['network', 'pingworker', 'vpc', 'solution', 'ops', '1', '2', '3']
list2 = ['vlan', 'nms', 'jds', 'zabbix', '4', '5', '6', 'pqr', '8', '2', '2', '3sd']
abc = {}
abc[keys[0]] = list1
abc[keys[1]] = list2
print(abc)
一个键怎么能有多个值? {'key1': 'network', 'pingworker', 'vpc', 'solution', 'ops', '1', '2', '3'}
不是有效的 python 字典。如果你想要这样的东西:{'key1': ['network', 'pingworker', 'vpc', 'solution', 'ops', '1', '2', '3']}
你可以简单地写:
abc = {keys[0]: list1, keys[1]: list2}
或
abc = {}
abc[keys[0]] = list1
abc[keys[1]] = list2
也许你可以做这样的事情。使用
dictionary.setdefault(something[i], []).append(value)
其中 something[i]
是 key1 值,值是数组中的值列表。
对列表 1 中的键和 .
range(len(list1))
中的值执行嵌套 for 循环然后,当您没有到达列表的末尾时,附加所有值。