Python: Liste verkleinern?

1 Antwort

Um die Liste auszudünnen und nur die Dateien mit der höchsten Nummer beizubehalten, kannst du folgenden Code verwenden:

# Ausgangsliste
A = ['a-4_2.jpeg', 'a-4_1.jpeg', 'a-6_1.jpeg']

# Dictionary erstellen, das die höchste Nummer für jede eindeutige Dateibezeichnung speichert
num_dict = {}
for file in A:
    key = file.split('_')[0]  # extrahiere Dateibezeichnung (alles vor '_')
    num = int(file.split('_')[1].split('.')[0])  # extrahiere Nummer (alles nach '_' bis vor '.')
    if key not in num_dict or num > num_dict[key]:
        num_dict[key] = num

# Neue Liste erstellen, die nur die Dateien mit der höchsten Nummer enthält
new_A = [key + '_' + str(num) + '.jpeg' for key, num in num_dict.items()]

# Ausgabe
print(new_A)  # gibt ['a-4_2.jpeg', 'a-6_1.jpeg'] aus

Hier wird zuerst ein Dictionary erstellt, das für jede eindeutige Dateibezeichnung die höchste Nummer speichert. Dann wird eine neue Liste erstellt, die nur die Dateien mit der höchsten Nummer enthält.

Woher ich das weiß:Berufserfahrung – Beruf, Schule, Hobby und eigene Erfahrungen

HagbardCeline88 
Fragesteller
 17.02.2023, 10:41

Danke ich probier das gleich mal aus; zerbreche mir die ganze Zeit schon den Kopf. Dictionary ist also das Zauberwort hm. Oki danke :) Ich schau mal obs funktioniert und geb dann Rückmeldung :)

1
HagbardCeline88 
Fragesteller
 17.02.2023, 15:45
@HagbardCeline88

klappt wunderbar danke, wobei mir das mit dem dictionary noch etwas unverständlich ist :( konnte es aber gut in meinen code integrieren :)

0