Ich habe eine Funktion zum Kombinieren bestimmter Elemente in einer Python-Liste erstellt, aber ich vermute, es gibt einen besseren Weg, den ich trotz extremem googlen nicht finden kann. Ich brauche den Code, um schnell zu sein, da ich das tausende Male machen werde.Gibt es eine bessere Möglichkeit, mehrere Elemente in einer Python-Liste zu kombinieren
mergeleft nimmt eine Liste von Elementen und eine Liste von Indizes. Im folgenden Beispiel nenne ich es als mergeleft (fields, (2,4,5)). Die Einträge 5, 4 und 2 der Liste Felder werden mit dem Element auf der linken Seite verkettet. In diesem Fall werden und d mit c verkettet; b wird mit a verkettet. Das Ergebnis ist eine Liste ('ab', 'cd3', 'f').
fields = ['a','b','c','d', 3,'f']
def mergeleft(x, fieldnums):
if 1 in fieldnums: raise Exception('Cannot merge field 1 left')
if max(fieldnums) > len(x): raise IndexError('Fieldnum {} exceeds available fields {}'.format(max(fieldnums),len(x)))
y = []
deleted_rows = ''
for i,l in enumerate(reversed(x)):
if (len(x) - i) in fieldnums:
deleted_rows = str(l) + deleted_rows
else:
y.append(str(l)+deleted_rows)
deleted_rows = ''
y.reverse()
return y
print(mergeleft(fields,(2,4,5)))
# Returns ['ab','cd3','f']
Können Sie in Word erklären, was "mergeleft" tun sollte? –