0

我不经常在 Python 中使用字典对象。我一直在编写一个脚本,该脚本需要我使用字典来存储动态创建的列表式信息。python - 如何将值附加到属于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>

谢谢!

4

4 回答 4

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]}
于 2013-06-24T18:31:54.450 回答
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]})
于 2013-06-24T18:32:04.567 回答
1
dict = {'PhysicalDrive0': ['0', '1', '2'], 'PhysicalDrive1': ['0', '1']}

这应该按说明工作。存储在字典中的值是一个列表 - 您可以正常处理。

当然,这意味着您可以通过以下方式访问列表中的项目:

dict['PhysicalDrive0'][0]

等等

于 2013-06-24T18:32:11.923 回答
1

你的语法无效,你的键值的一半需要是一个项目,它可以是一个列表,但是你可以说'PhysicalDrive0':['0','1','2']

然后,您可以通过说附加到字典中的该键值对dict['PhysicalDrive0'].append('3')

于 2013-06-24T18:33:52.447 回答