Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Liste durchsuchen
Autor
Schule Liste durchsuchen
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2495
  Themenstart: 2021-06-18

Hallo, anderes Problem. hab jetzt kapiert, wie man werte aus einer Liste in ein Diktionary sortieren lassen kann, nämlich so: \sourceon Python \numberson \v6dic={} list2=[2,3,4,5,4,3,2,3,2,3,2] for x in range(1,5,1): v6dic.update({x:list2.count(x)}) v6dic \sourceoff Nun möchte ich, dass er nicht die ganze Liste im Diktionry auswertet, sondern nur sagen wir, bis zur Hälfte der Liste, die anderen aber ignoriert... Kann man das Liste aufteilen in 2 Listen irgendwie umgehen?


   Profil
schlauuu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2021
Mitteilungen: 29
  Beitrag No.1, eingetragen 2021-06-18

du kannst ein dict nicht sortieren*** wieso sollte man auch es gibt eindeutige Schlüssel denen Werte zugeordent werden. Dein Code sortiert nichts er überschreibt die Schlüssel 1 bis 5 mit der Anzahl der jeweiligen Zahlen in der Liste falls du eine Liste in einem dict sortieren willst dann: dict[key].sort() #nur bestimmte Indizes dict[key][low:high]= sorted(dict[key][low:high]) ***anscheinend gibt es ein sorted(dict) das gibt aber ein Array der sortierten Keys zurück ------- Eine erwähneswerte Sache mit pandas kannst du dir 'Tabellen' in Python erstellen und in Python damit arbeiten und erst am Ende nach Excel schreiben das würde ich bevorzugen da pandas weitaus universeller ist. https://pandas.pydata.org/docs/user_guide/10min.html#min


   Profil
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2969
  Beitrag No.2, eingetragen 2021-06-19

Elementare Listcomprehension wäre eine einfache Lösung: \sourceon Python \numberson List=[2,3,4,5,4,3,2,3,2,3,2] fullDict = {n: List.count(n) for n in set(List)} print(f"fullDict = {fullDict}") lower_half_List = List[:len(List)//2] lowerDict = {n: lower_half_List.count(n) for n in set(lower_half_List)} print(f"lowerDict = {lowerDict}") upper_half_List = List[len(List)//2:] upperDict = {n: upper_half_List.count(n) for n in set(upper_half_List)} print(f"upperDict = {upperDict}") # Output: # fullDict = {2: 4, 3: 4, 4: 2, 5: 1} # lowerDict = {2: 1, 3: 1, 4: 2, 5: 1} # upperDict = {2: 3, 3: 3} \sourceoff


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2495
  Beitrag No.3, vom Themenstarter, eingetragen 2021-06-19

\quoteon(2021-06-19 11:43 - DerEinfaeltige in Beitrag No. 2) Elementare Listcomprehension wäre eine einfache Lösung: \sourceon Python \numberson List=[2,3,4,5,4,3,2,3,2,3,2] fullDict = {n: List.count(n) for n in set(List)} print(f"fullDict = {fullDict}") lower_half_List = List[:len(List)//2] lowerDict = {n: lower_half_List.count(n) for n in set(lower_half_List)} print(f"lowerDict = {lowerDict}") upper_half_List = List[len(List)//2:] upperDict = {n: upper_half_List.count(n) for n in set(upper_half_List)} print(f"upperDict = {upperDict}") # Output: # fullDict = {2: 4, 3: 4, 4: 2, 5: 1} # lowerDict = {2: 1, 3: 1, 4: 2, 5: 1} # upperDict = {2: 3, 3: 3} \sourceoff \quoteoff Danke Einfältiger, langsam verstehe ich mehr .... schön logisch aufgebaut....


   Profil
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]