Manchmal habe ich eine Liste und ich möchte einige Set-Aktionen damit machen. Was ich tue, ist zu schreiben, Dinge wie:Erstellen Sie ein Set aus einer Liste mit {}
>>> mylist = [1,2,3]
>>> myset = set(mylist)
{1, 2, 3}
Heute habe ich entdeckt, dass von Python 2.7 auch eine Reihe von direkt sagen {1,2,3}
definieren kann, und es erscheint eine gleichwertige Art und Weise, es zu definieren.
Dann fragte ich mich, ob ich diese Syntax verwenden kann, um eine Menge aus einer gegebenen Liste zu erstellen.
{list}
schlägt fehl, weil es versucht, einen Satz mit nur einem Element, der Liste zu erstellen. Und Listen sind nicht hashbar.
>>> mylist = [1,2,3]
>>> {mylist}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
So frage ich mich: mit der {}
Syntax statt set()
ist es eine Möglichkeit, einen Satz aus einer Liste zu erstellen?
'{a für eine in my_list}'. –
Die kurze Antwort auf Ihre Frage ist nein. –
Zugehörig (vielleicht dupe): [Python Set: Warum ist my_set = {* my_list} ungültig?] (Http://stackoverflow.com/q/36199066/3821804) – GingerPlusPlus