Listen oder Tupel "subtrahieren" :)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
thelittlebug
User
Beiträge: 187
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Listen oder Tupel "subtrahieren" :)

Beitragvon thelittlebug » Samstag 22. Juli 2006, 09:41

Guten Morgen,

zuerst mal ein großes Lob an die Betreiber und User dieses Forums, hab es schon fast komplett durchgelesen *übertreib* und ich finde immer noch Interessantes und Neues :)

Da ich mit knapp einem Monat Python Erfahrung immer noch zu den Neulingen zähle und mein Ziel der PythonicWay ist habe ich dementsprechend viele Fragen wie man dieses und jenes in Python richtig löst.

Diesmal sind Mengen an der Reihe.
Nehmen wir die Menge a als Beispiel, a = ['ichbina', 'ichwarmala','binaucheina']
Ich würde nun gerne die Menge b von a abziehen, b = ['ichwarmala'], um zu dem Ergebnis c zu kommen. c = ['ichbina','binaucheina']

Idealerweise wäre es dann im Code so zu schreiben: c = a - b
Gibt es diese Möglichkeit von Haus aus, wenn nicht vielleicht stattdessen einen schlauen Python Weg oder muss ich da tatsächlich selbst Hand anlegen?

Vielen Dank für eure Hilfe ;)
mfg tlb
Benutzeravatar
Whitie
User
Beiträge: 111
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Beitragvon Whitie » Samstag 22. Juli 2006, 09:51

Also wenn nicht unbedingt c rauskommen soll, sondern nur alle Elemente aus a verschwinden sollen, die in b vorkommen:

Code: Alles auswählen

>>>a = ['a', 'b', 'c']
>>>b = ['b']
>>>[a.remove(element) for element in b]
>>>a
['a', 'c']
>>>


Gruß, Whitie

Edit: Bei Tupeln geht das natürlich nicht, da diese nicht veränderbar sind.
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Samstag 22. Juli 2006, 10:01

Sets implementieren das. Sind per definitionem jedoch nicht geordnet und jedes Element gibt es nur einmal. Wenn dir das reicht:

Code: Alles auswählen

>>> from sets import Set
>>> a=Set(['asd','bxb','asdd'])
>>> b=Set(['bxb'])
>>> a-b
Set(['asdd', 'asd'])
(Beachte, dass sich die Reihenfolge geändert hat)
thelittlebug
User
Beiträge: 187
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Beitragvon thelittlebug » Samstag 22. Juli 2006, 11:44

Vielen Dank für die schnellen Antworten.
Ich glaube ich werde mich mal ein wenig mit den Sets spielen.

mfg tlb

Wer ist online?

Mitglieder in diesem Forum: DB7WN, pixewakb