0

Python ではディクショナリ オブジェクトをあまり使用しません。私は、動的に作成されたリストのような情報を格納するために辞書を使用する必要があるスクリプトに取り組んでいます。Pythonの辞書の1つのキーに属する値のリストに値を追加するにはどうすればよいですか? これは可能ですか?後で引き出すことができるこの種の情報を作成できることを願っています...

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 に答える