Seite 1 von 1

Sublisten zu Sublisten hinzufügen

Verfasst: Freitag 6. September 2019, 11:41
von Ede1994
Hallo.
Ich möchte eine Subliste, unter bestimmten Umständen, d.h wenn ihre Länge kleiner als 2 ist der vorherigen Subliste anhängen.

Code: Alles auswählen

a = [1,1,1,1]
b = [5]
c = [1,1,1]
d = [1,1,1,1,1]
e = [1,2]
f = [1,1,1,1,1,1]

L = [a,b,c,d,e,f]

print 'List:', L

def short(lists):
  c = 0
  result = []
  prev = lists[c]
  for value in lists:
    if len(value) <= 2:
      result.append(prev + value)
      c =+ 1
  print result

short(L)
Das funktioniert schon mal so wie ich es gerne hätte. Nun möchte ich aber die Sublisten, welche länger als 2 sind, mit hinzufügen, jedoch sollen die 'erweiterten Listen' (die ursprünglichen Sublsiten, welche um eine Subliste erweitert wurde) nicht mehr mit auftauchen. Das Ergebnis sollte also ungefähr lauten:

Code: Alles auswählen

[[1, 1, 1, 1, 5], [1, 1, 1], [1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1]]
Also Liste a und d sollen nicht mehr mit auftauchen!

Re: Sublisten zu Sublisten hinzufügen

Verfasst: Freitag 6. September 2019, 12:38
von __deets__
Statt immer einen neuen wert zu bilden, ruf einfach extend auf der letzten Liste auf, statt append auf dem Gesamtergebnis.

Re: Sublisten zu Sublisten hinzufügen

Verfasst: Freitag 6. September 2019, 13:31
von Sirius3
Was soll denn das `c`? Das wird ja gar nicht benutzt. Und wenn Du die Listen nicht haben willst, dann füge einfach keine neuen hinzu.

Code: Alles auswählen

def short(lists):
    result = []
    for value in lists:
        if len(value) <= 2 and result:
            result[-1] = result[-1] + value
    return result
Eingerückt wird übrigens mit vier Leerzeichen pro Ebene.

@__deets__: da muß man dann aufpassen, dass man nicht die ursprünglichen Listen verändert.

Re: Sublisten zu Sublisten hinzufügen

Verfasst: Freitag 6. September 2019, 13:42
von __deets__
@Sirius3: wo du recht hast.