Filme sortieren mit Python?

4 Antworten

Eien lexikographische Ordnung der Strings herzustellen ist Pille Palle. Das macht jede Sprache von Natur aus, wobei es ein wenig umständlicher ist, wenn man volle I18N möchte.

Deine Probleme müssen also eigentlich an anderer Stelle liegen.

Panjandrum  03.12.2019, 13:09

Sehe ich auch so.

Zumal ich hier kein Python nutzen würde, sondern einfach eine Tabellenkalkulation ... oder wenn es denn ein Skript sein muss:

sort filme.txt >sortiert.txt
0
KarlRanseierIII  03.12.2019, 13:41
@Panjandrum

Es spricht prinzipiell nichts gegen Python, ist dort auch nur ein5-zeiler und wenn man kein sort Utility zur Hand hat, dann ist das bequem.

Immerhin honoriert sort die locale, das ist eine gute Nachricht.

0

Wieso in Python? Also umständlicher geht es nicht?

Einfach Windows Explorer "Nach Namen Sortieren lassen"

Sowas?

filme = ["Babycon 5", "Atlantis", "Alcatraz", "Derrick", "Jurassic Park", "Der Pate"]
for film in sorted(filme):
    print(film)

Die Ausgabe ist dann:

Alcatraz
Atlantis
Babycon 5
Der Pate
Derrick
Jurassic Park

... oder sollen die Filme in Ordner sortiert werden und das Programm muss die Ordnerstruktur erstellen oder sowas?

Ich verstehe das Problem nicht wirklich...

Ich würde gerne ein Python script schreiben wo ich nur die Filmnamen einfügen muss

... die kannst du auch von der Platte lesen - entweder aus dem Dateinamen oder den EXIF-Daten!

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Jede alphabetische Sortierung in jeder Programmiersprache macht das so..

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
Libralum2000 
Fragesteller
 03.12.2019, 12:34

Das Problem ist das es nicht weiter Sortiert... Es sortiert nur den ersten Buchstaben... es sollte aber den ersten sortieren... wenn es mehrere mit dem gleichen Anfangsbuchstaben gibt sollte es innerhalb dieser Gruppierung dann zum nächsten Buchstaben usw. bis alle mit dem gleichen Anfangsbuchstaben in der Perfekten Reihenfolge sind...

0
triopasi  03.12.2019, 12:36
@Libralum2000

Dann hab ich keine Ahnung was du falsch machst. Bei mir hat die alphabetische Sortierung bisher immer richtig funktioniert ;)

0
Libralum2000 
Fragesteller
 03.12.2019, 12:38
@Mark Berger

dict ={

  "L1" : ["ABC" , "BAC" , "CBA" , "ACB"],

}

print("\nBefore Sorting: ")

for x in dict.items():

  print(x)

print("\nAfter Sorting: ")

for i, j in dict.items():

  sorted_dict ={i:sorted(j)}

  print(sorted_dict)

0
Mark Berger  03.12.2019, 13:07
@Libralum2000

Das Problem ist der Variablenname dict - python kommt da durcheinander denn dict ist ein Python-Schlüsselwort!

Dein Code ist allerdings alles andere als gut - vor allem ist dein Beispiel nicht selbsterklärend und keiner will darüber nachdenken müssen warum du was machst...

Ein Beispiel:

filme={
  "Geo" : ["Der Globus" , "Equador" , "Argentinien - Land der ..."],
  "Bio" : ["Der Mensch" , "Unsere Umwelt" , "Das Krokodil"]
}

print("\nBefore Sorting: ")
for kat_liste in filme.items():
  print(kat_liste)

print("\nAfter Sorting: ")
for kat, liste in filme.items():
  sortierte_kat_liste = { kat : sorted(liste) }
  print(sortierte_kat_liste)

... jetzt wird klar was was ist und warum ein Dict und keine Liste verwendet wird!

Außerdem sorgen sinnvolle Variablennamen dafür das man nicht in Konflikt mit Schlüsselwörtern kommt.

PS.: So werden zB die Kategorien nicht sortiert!

0