432 Stimmen

Liste zum Set hinzufügen?

Getestet mit Python 2.6 Interpreter:

>>> a=set('abcde')
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> l=['f','g']
>>> l
['f', 'g']
>>> a.add(l)
Traceback (most recent call last):
  File "<pyshell#35>", line 1, in <module>
    a.add(l)
TypeError: list objects are unhashable

Ich glaube, dass ich die Liste nicht zum Satz hinzufügen kann, weil Python nicht feststellen kann, ob ich dieselbe Liste zweimal hinzugefügt habe. Gibt es einen Workaround?

EDIT: Ich möchte die Liste selbst hinzufügen, nicht ihre Elemente.

3voto

keios Punkte 453

In der Regel gehe ich folgendermaßen vor:

def add_list_to_set(my_list, my_set):
    [my_set.add(each) for each in my_list]
return my_set

3voto

U12-Forward Punkte 64772

Versuchen Sie es mit * auspacken, wie unten:

>>> a=set('abcde')
>>> a
{'a', 'd', 'e', 'b', 'c'}
>>> l=['f','g']
>>> l
['f', 'g']
>>> {*l, *a}
{'a', 'd', 'e', 'f', 'b', 'g', 'c'}
>>> 

Nicht-Editor-Version:

a=set('abcde')
l=['f', 'g']
print({*l, *a})

Ausgabe:

{'a', 'd', 'e', 'f', 'b', 'g', 'c'}

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