582 Stimmen

Anhängen von Werten an eine Menge in Python

Ich habe einen Satz wie diesen:

keep = set(generic_drugs_mapping[drug] for drug in drug_input)

Wie kann ich Werte hinzufügen? [0,1,2,3,4,5,6,7,8,9,10] in dieses Set?

574voto

Alex Martelli Punkte 805329
keep.update(yoursequenceofvalues)

z.B., keep.update(range(11)) für Ihr spezifisches Beispiel. Oder, wenn Sie haben um die Werte aus einem anderen Grund in einer Schleife zu erzeugen,

for ...whatever...:
    onemorevalue = ...whatever...
    keep.add(onemorevalue)

Aber natürlich, wenn man es in großen Mengen mit einer einzigen .update Anruf ist schneller und praktischer, wenn dies möglich ist.

454voto

RandallShanePhD Punkte 4905

Definieren Sie eine Menge

a = set()

Utilisez add zum Anhängen einzelner Werte

a.add(1)
a.add(2)

Utilisez update um Elemente aus Tupeln, Mengen, Listen oder eingefrorenen Mengen hinzuzufügen

a.update([3, 4])

>>> print(a)
{1, 2, 3, 4}

Hinweis: Da Mengenelemente hashfähig sein müssen und Listen als veränderbar gelten, können Sie nicht add eine Liste zu einer Menge. Sie können auch nicht add andere Sets zu einem Set. Sie können jedoch die Elemente von Listen und Mengen hinzufügen, wie mit der Methode .update Methode.

155voto

nyuszika7h Punkte 13065

Sie können auch die | Operator zur Verkettung zweier Mengen ( Gewerkschaft in der Mengenlehre):

>>> my_set = {1}
>>> my_set = my_set | {2}
>>> my_set
{1, 2}

Oder eine kürzere Form mit |= :

>>> my_set = {1}
>>> my_set |= {2}
>>> my_set
{1, 2}

Nota: In Versionen vor Python 2.7, verwenden Sie set([...]) 代わりに {...} .

47voto

sberry Punkte 121520

Utilisez update wie diese:

keep.update(newvalues)

20voto

Alexandre Punkte 363

Diese Frage ist die erste, die bei Google auftaucht, wenn man nach "Python how to add elements to set" sucht. Es lohnt sich also, explizit darauf hinzuweisen, dass man, wenn man eine ganze Zeichenkette zu einer Menge hinzufügen möchte, diese mit .add() , nicht .update() .

Angenommen, Sie haben eine Zeichenkette foo_str deren Inhalte sind 'this is a sentence' und Sie haben eine Reihe von bar_set gleich set() .

Wenn Sie das tun bar_set.update(foo_str) wird der Inhalt Ihres Sets wie folgt aussehen {'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'} .

Wenn Sie das tun bar_set.add(foo_str) wird der Inhalt Ihres Sets wie folgt aussehen {'this is a sentence'} .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X