私はこのようなセットを持っています:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
[0,1,2,3,4,5,6,7,8,9,10]
このセットに値を追加するにはどうすればよいですか?
私はこのようなセットを持っています:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
[0,1,2,3,4,5,6,7,8,9,10]
このセットに値を追加するにはどうすればよいですか?
回答:
keep.update(yoursequenceofvalues)
例えば、keep.update(xrange(11))
あなたの具体的な例のために。または、他の理由でループで値を生成する必要がある場合は、
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
しかし、もちろん、1回の.update
呼び出しで一括して行う方が、他の方法で実現可能な場合は、より速くて便利です。
.add
単一のハッシュ.update
可能な型を期待し、反復可能なオブジェクトを期待します
.add
ではなく.update
で追加されるべきであることに注意することは確かに重要です。
セットを定義
a = set()
追加を使用して単一の値を追加する
a.add(1)
a.add(2)
updateを使用して、タプル、セット、リスト、またはフリーズセットから要素を追加します
a.update([3,4])
>> print(a)
{1, 2, 3, 4}
タプルまたはフリーズセット自体を追加する場合は、addを使用します。
a.add((5, 6))
>> print(a)
{1, 2, 3, 4, (5, 6)}
注:セット要素はハッシュ可能である必要があり、リストは変更可能と見なされるため、セットにリストを追加することはできません。また、セットに他のセットを追加することもできません。ただし、「。update」メソッドで示されているように、リストとセットから要素を追加できます。
|
演算子を使用して、2つのセットを連結することもできます(集合論では和集合)。
>>> my_set = {1}
>>> my_set = my_set | {2}
>>> my_set
{1, 2}
または、以下を使用した短い形式|=
:
>>> my_set = {1}
>>> my_set |= {2}
>>> my_set
{1, 2}
注: Python 2.7より前のバージョンでは、のset([...])
代わりにを使用してください{...}
。
my_sets
ことができますbig_set = my_sets[0].union(*my_sets[1:])
この質問は、「Pythonで設定する要素を追加する方法」を調べたときにGoogleに表示される最初の質問です。そのため、文字列全体をセットに追加する.add()
場合は、ない.update()
。
foo_str
内容が'this is a sentence'
である文字列があり、いくつかのセットがbar_set
等しいとするset()
ます。
そうすれば
bar_set.update(foo_str)
、セットの内容はになります{'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
。
そうすればbar_set.add(foo_str)
、セットの内容はになります{'this is a sentence'}
。
これを行う方法は、元のセットとリストに追加する値の両方を変換し、それらを追加してから、次のようにセットに戻すことです。
setMenu = {"Eggs", "Bacon"}
print(setMenu)
> {'Bacon', 'Eggs'}
setMenu = set(list(setMenu) + list({"Spam"}))
print(setMenu)
> {'Bacon', 'Spam', 'Eggs'}
setAdditions = {"Lobster", "Sausage"}
setMenu = set(list(setMenu) + list(setAdditions))
print(setMenu)
> {'Lobster', 'Spam', 'Eggs', 'Sausage', 'Bacon'}
このようにして、同じロジックを使用して複数のセットを簡単に追加することもできます。TypeError: unhashable type: 'set'
これは、.update()
メソッドでそれを実行しようとした場合に役立ちます。
.add
単一のアイテムを.update
追加し、いくつかのアイテムを追加します。あれは正しいですか?