Seite 1 von 1

Listen verschmelzen

Verfasst: Mittwoch 3. Mai 2006, 18:00
von keboo
Hallo!

Wie kann ich 2 Listen, die mit Strings gefüllt sind verschmelzen?
Besser gesagt:

Ich will eine 2. Liste an einer bestimmten stelle in die erste intigrieren.

Soll so in etwa aussehen:

Code: Alles auswählen


list1=['a','b','c','d','e','f']

list2=['bb','cc','dd']

resultat=['a','b','bb','cc','dd','c','d','e','f']

Geht das irgendwie über list1.insert? Habs nur geschafft, dass ich einen Tupel draus mache. Ich will aber, dass die resultat Liste nur aus Strings besteht.


Danke für eure Hilfe,

Johannes

Verfasst: Mittwoch 3. Mai 2006, 18:17
von Redprince
Moinsen...
Teile die erste Liste an der Stelle in zwei neue Listen auf, an der du die zweite Liste einfügen möchtest.
Nun hängst du an die erste getrennte (oder eine neue) Liste mit list.extend(otherList) die folgende Liste usw.

Verfasst: Mittwoch 3. Mai 2006, 20:41
von Joghurt
Für den Fall, das die Liste sortiert sein soll:

Code: Alles auswählen

liste1.extend(liste2)
liste1.sort()
Ist natürlich nicht optimal, was die Laufzeit angeht, aber solange liste2 weniger als ein paar tausend Einträge sind...

Verfasst: Mittwoch 3. Mai 2006, 21:34
von BlackJack
Entweder Du teilst `list1` in zwei Teile, den Teil vor dem Einfügepunkt und den Rest, und baust dann das Resultat aus diesen beiden Teilen und der `list2` zusammen, oder Du kannst die zweite Liste auch per "slice" in die erste einfügen. Dabei veränderst Du dann aber das `list1` Objekt!

Code: Alles auswählen

In [50]:list1 = ['a', 'b', 'c', 'd', 'e' ,'f']

In [51]:list2 = ['bb', 'cc', 'dd']

In [52]:resultat = list1[:2] + list2 + list1[2:]

In [53]:print resultat
['a', 'b', 'bb', 'cc', 'dd', 'c', 'd', 'e', 'f']

In [54]:list1[2:2] = list2

In [55]:print list1
['a', 'b', 'bb', 'cc', 'dd', 'c', 'd', 'e', 'f']

Verfasst: Donnerstag 4. Mai 2006, 08:42
von keboo
Danke für die zielführende Antwort :D

Johannes