Mam taki zestaw:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
Jak dodać wartości [0,1,2,3,4,5,6,7,8,9,10]
do tego zestawu?
keep.update(yoursequenceofvalues)
np. keep.update(xrange(11))
dla twojego konkretnego przykładu. Albo, jeśli masz do wytworzenia wartości w pętli z jakiegoś innego powodu,
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
Ale oczywiście robienie tego zbiorczo za pomocą pojedynczego .update
połączenia jest szybsze i wygodniejsze, jeśli jest to wykonalne w inny sposób.
.add
dodaje jeden element,.update
dodaje kilka elementów. Czy to jest poprawne?.add
oczekuje pojedynczego typu skrótu, podczas gdy.update
oczekuje obiektu iterowalnego.add
, a nie.update
, ostatnio spotkałem się z dość podstępnym błędem z powodu tego małego szczegółu.Zdefiniuj zestaw
Użyj add, aby dołączyć pojedyncze wartości
Użyj aktualizacji, aby dodać elementy z krotek, zestawów, list lub zestawów zamrożonych
Jeśli chcesz dodać krotkę lub sam zestaw zamrożony, użyj add
Uwaga: Ponieważ elementy zestawu muszą być haszowalne, a listy są uważane za zmienne, nie można dodać listy do zestawu. Nie można również dodawać innych zestawów do zestawu. Można jednak dodawać elementy z list i zestawów, jak pokazano za pomocą metody „.update”.
źródło
Możesz także użyć
|
operatora do połączenia dwóch zbiorów ( połączenie w teorii zbiorów):Lub krótszy formularz przy użyciu
|=
:Uwaga: W wersjach wcześniejszych niż Python 2.7 użyj
set([...])
zamiast{...}
.źródło
my_sets
, możeszbig_set = my_sets[0].union(*my_sets[1:])
połączyć je wszystkieUżyj w
update
ten sposób:źródło
To pytanie jest pierwszym, które pojawia się w Google, gdy szuka się „Pythona, jak dodawać elementy do zestawu”, dlatego warto wyraźnie zaznaczyć, że jeśli chcesz dodać cały ciąg do zestawu, należy dodać
.add()
: nie.update()
.Załóżmy, że masz ciąg znaków,
foo_str
którego zawartość jest'this is a sentence'
, i masz zestawbar_set
równyset()
.Jeśli to zrobisz
bar_set.update(foo_str)
, zawartość Twojego zestawu będzie{'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
.Jeśli to zrobisz
bar_set.add(foo_str)
, zawartość Twojego zestawu będzie{'this is a sentence'}
.źródło
Lubię to przekonwertować zarówno oryginalny zestaw, jak i wartości, które chciałbym dodać do list, dodać je, a następnie przekonwertować z powrotem na zestaw, jak poniżej:
W ten sposób mogę również łatwo dodawać wiele zestawów przy użyciu tej samej logiki, co daje
TypeError: unhashable type: 'set'
mi i próbę zrobienia tego za pomocą.update()
metody.źródło
Lub
źródło
Dla mnie w Pythonie 3 działa on w następujący sposób:
Nie wiem czy to może być poprawne ...
źródło