Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Liste durchsuchen
Druckversion
Druckversion
Antworten
Antworten
Autor
Schule Liste durchsuchen
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2428
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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:
Python
  1. \v6dic={}
  2. list2=[2,3,4,5,4,3,2,3,2,3,2]
  3.  
  4. for x in range(1,5,1):
  5. v6dic.update({x:list2.count(x)})
  6. v6dic

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?
 



-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
schlauuu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2021
Mitteilungen: 29
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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.
pandas.pydata.org/docs/user_guide/10min.html#min



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2912
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2021-06-19


Elementare Listcomprehension wäre eine einfache Lösung:
Python
  1. List=[2,3,4,5,4,3,2,3,2,3,2]
  2.  
  3. fullDict = {n: List.count(n) for n in set(List)}
  4. print(f"fullDict = {fullDict}")
  5.  
  6. lower_half_List = List[:len(List)//2]
  7. lowerDict = {n: lower_half_List.count(n) for n in set(lower_half_List)}
  8. print(f"lowerDict = {lowerDict}")
  9.  
  10. upper_half_List = List[len(List)//2:]
  11. upperDict = {n: upper_half_List.count(n) for n in set(upper_half_List)}
  12. print(f"upperDict = {upperDict}")
  13.  
  14. # Output:
  15. # fullDict = {2: 4, 3: 4, 4: 2, 5: 1}
  16. # lowerDict = {2: 1, 3: 1, 4: 2, 5: 1}
  17. # upperDict = {2: 3, 3: 3}



-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2428
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2021-06-19


2021-06-19 11:43 - DerEinfaeltige in Beitrag No. 2 schreibt:
Elementare Listcomprehension wäre eine einfache Lösung:
Python
  1. List=[2,3,4,5,4,3,2,3,2,3,2]
  2.  
  3. fullDict = {n: List.count(n) for n in set(List)}
  4. print(f"fullDict = {fullDict}")
  5.  
  6. lower_half_List = List[:len(List)//2]
  7. lowerDict = {n: lower_half_List.count(n) for n in set(lower_half_List)}
  8. print(f"lowerDict = {lowerDict}")
  9.  
  10. upper_half_List = List[len(List)//2:]
  11. upperDict = {n: upper_half_List.count(n) for n in set(upper_half_List)}
  12. print(f"upperDict = {upperDict}")
  13.  
  14. # Output:
  15. # fullDict = {2: 4, 3: 4, 4: 2, 5: 1}
  16. # lowerDict = {2: 1, 3: 1, 4: 2, 5: 1}
  17. # upperDict = {2: 3, 3: 3}


Danke Einfältiger, langsam verstehe ich mehr .... schön logisch aufgebaut....


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


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]