我不经常在Python中使用字典对象。我一直在研究一个脚本,它要求我使用字典来存储动态创建的list'esque信息。如何将值附加到Python中字典中属于一个键的值列表中?这可能吗?我希望能够创建这种类型的信息,我可以在以后提取......
dict = {'PhysicalDrive0': '0', '1', '2', 'PhysicalDrive1': '0', '1'};
dict[PhysicalDrive0].append(3)
dict[PhysicalDrive1].append(2)
print dict[PhysicalDrive0]
<0, 1, 2, 3>
print dict[PhysicalDrive1]
<0, 1, 2>
谢谢!
答案 0 :(得分:3)
使用列表作为值,列表将允许您追加新项目:
>>> dic = {'PhysicalDrive0': ['0', '1', '2'], 'PhysicalDrive1': ['0', '1']}
>>> dic['PhysicalDrive0'].append('3')
>>> dic['PhysicalDrive1'].append('2')
>>> dic
{'PhysicalDrive1': ['0', '1', '2'], 'PhysicalDrive0': ['0', '1', '2', '3']}
要将值附加到缺失密钥,您可以使用dict.setdefault
,如果密钥已经存在,那么它会将值附加到已存在的列表,否则会创建一个带有空列表的密钥,然后附加它的价值。
演示:
#creates a new key PhysicalDrive3' and appends a value to it.
>>> dic.setdefault('PhysicalDrive3', []).append('3')
>>> dic
{'PhysicalDrive1': ['0', '1', '2'], 'PhysicalDrive0': ['0', '1', '2', '3'], 'PhysicalDrive3': ['3']}
>>> dic.setdefault('PhysicalDrive1', []).append('5')
>>> dic
{'PhysicalDrive1': ['0', '1', 2, '5'], 'PhysicalDrive0': ['0', '1', '2', 3], 'PhysicalDrive3': [3]}
答案 1 :(得分:3)
如果您不能简单地将值存储为列表文字,则应查看collections.defaultdict
:
from collections import defaultdict
dd = defaultdict(list)
dd['Drive1'].append(3)
dd['Drive2'].append(6)
dd['Drive1'].append(2)
# defaultdict(<type 'list'>, {'Drive2': [6], 'Drive1': [3, 2]})
答案 2 :(得分:1)
dict = {'PhysicalDrive0': ['0', '1', '2'], 'PhysicalDrive1': ['0', '1']}
这应该如上所述。存储在字典中的值是一个列表 - 您可以正常处理。
这当然意味着您可以访问列表中的项目:
dict['PhysicalDrive0'][0]
等
答案 3 :(得分:1)
您的语法无效,键值的一半需要是单个项目,它可以是一个列表,但您可以说'PhysicalDrive0':['0','1','2']
然后,您可以通过说dict['PhysicalDrive0'].append('3')