Ich habe ein Set wie dieses:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
Wie füge ich [0,1,2,3,4,5,6,7,8,9,10]
diesem Satz Werte hinzu ?
keep.update(yoursequenceofvalues)
zB keep.update(xrange(11))
für Ihr spezifisches Beispiel. Oder, wenn Sie haben die Werte in einer Schleife aus einem anderen Grunde zu produzieren,
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
Aber natürlich .update
ist es schneller und einfacher, es in großen Mengen mit einem einzigen Anruf zu erledigen, wenn dies sonst möglich ist.
.add
fügt ein einzelnes Element.update
hinzu , fügt mehrere Elemente hinzu. Ist das korrekt?.add
erwartet einen einzelnen Hash-Typ, während.update
erwartet ein iterierbares Objekt.add
, nicht.update
, ich hatte kürzlich aufgrund dieses kleinen Details einen ziemlich hinterhältigen Fehler.Set definieren
Verwenden Sie add, um einzelne Werte anzuhängen
Verwenden Sie update, um Elemente aus Tupeln, Mengen, Listen oder eingefrorenen Mengen hinzuzufügen
Wenn Sie ein Tupel oder ein Frozen-Set selbst hinzufügen möchten, verwenden Sie add
Hinweis: Da Mengenelemente hashbar sein müssen und Listen als veränderbar angesehen werden, können Sie einer Menge keine Liste hinzufügen. Sie können einem Satz auch keine anderen Sätze hinzufügen. Sie können jedoch die Elemente aus Listen und Sätzen hinzufügen, wie mit der Methode ".update" gezeigt.
quelle
Sie können den
|
Operator auch verwenden , um zwei Mengen zu verketten ( Vereinigung in der Mengenlehre):Oder eine kürzere Form mit
|=
:Hinweis: Verwenden Sie in Versionen vor Python 2.7
set([...])
anstelle von{...}
.quelle
my_sets
, können Siebig_set = my_sets[0].union(*my_sets[1:])
sie alle kombinierenVerwenden Sie
update
wie folgt:quelle
Diese Frage ist die erste, die bei Google angezeigt wird, wenn "Python zum Hinzufügen von Elementen zum Set" nachgeschlagen wird. Wenn Sie also einem Set einen ganzen String hinzufügen möchten, sollten Sie Folgendes hinzufügen
.add()
: nicht.update()
.Angenommen, Sie haben eine Zeichenfolge,
foo_str
deren Inhalt ist'this is a sentence'
, und Sie haben eine Mengebar_set
gleichset()
.Wenn Sie dies tun
bar_set.update(foo_str)
, wird der Inhalt Ihres Sets sein{'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
.Wenn Sie dies tun
bar_set.add(foo_str)
, wird der Inhalt Ihres Sets sein{'this is a sentence'}
.quelle
Ich möchte dies tun, indem ich sowohl den ursprünglichen Satz als auch die Werte, die ich hinzufügen möchte, in Listen konvertiere, sie hinzufüge und sie dann wieder in einen Satz konvertiere, wie folgt:
Auf diese Weise kann ich auch problemlos mehrere Sätze mit derselben Logik hinzufügen.
TypeError: unhashable type: 'set'
Wenn ich es mit der.update()
Methode versuche , bekomme ich eine .quelle
Oder
quelle
In Python 3 funktioniert das einfach so:
Ich weiß nicht, ob es richtig sein kann ...
quelle