web-dev-qa-db-ja.com

Pythonを設定し、辞書値として文字列を追加する方法

Setオブジェクトとして値を持つ辞書を作成しようとしています。一意の参照に関連付けられた一意の名前のコレクションが必要です)。私の目的は、次のようなものを作成することです。

AIM:

_Dictionary[key_1] = set('name')    
Dictionary[key_2] = set('name_2', 'name_3')
_

SETへの追加:

_Dictionary[key_2].add('name_3')
_

ただし、setオブジェクトを使用すると、name文字列が here のように予期される文字に分割されます。文字列をタプル、つまりset(('name'))Dictionary[key].add(('name2'))にしようとしましたが、文字列が文字に分割されるため、これは必要に応じて機能しません。

リストを介して文字列をセットに追加して、次のような文字に分割されないようにする唯一の方法です

_'n', 'a', 'm', 'e'
_

他のアイデアはありがたいことに受け取られます。

20
12avi

@larsmansが説明したように、単一要素のTupleを記述できますが、末尾のコンマを忘れがちです。リストをセットコンストラクターとメソッドのパラメーターとして使用するだけで、エラーが発生しにくくなります。

Dictionary[key_1] = set(['name'])    
Dictionary[key_2] = set(['name_2', 'name_3'])

Dictionary[key_2].add(['name_3'])

すべてが期待どおりに機能するはずです。

15
Duncan

('name')はタプルではありません。単に式'name'、括弧付き。 1要素のタプルは('name',); 1要素リスト['name']はよりきれいで、機能します。

Python 2.7、3.xでは、{'name'}セットを作成します。

15
Fred Foo