python dictionary一个元素作为键,一个列表作为值

时间:2017-03-25 09:18:08

标签: python list dictionary zip

嘿我有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'}

4 个答案:

答案 0 :(得分:2)

试试这个:

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':[]}

答案 1 :(得分:1)

你甚至可以这样做:

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)

答案 2 :(得分:0)

如何为单个密钥设置多个值? {'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

答案 3 :(得分:-1)

你可以做这样的事情.-使用dictionary.setdefault(某事[i],[])。append(value)

其中某些内容[i]是您的key1值,而value是数组中的值列表。

为列表1中的键和范围中的值(len(list1))执行嵌套for循环。然后,当您没有到达列表的末尾时,请附加所有值。