Python: Wie lese ich gleiche Werte aus einer Liste ab?

1 Antwort

Ich klaue mal gerade den Code von http://stackoverflow.com/questions/2600191/how-can-i-count-the-occurrences-of-a-list-item-in-python :

>>> from collections import Counter
>>> z = ['blue', 'red', 'blue', 'yellow', 'blue', 'red']
>>> Counter(z)
Counter({'blue': 3, 'red': 2, 'yellow': 1})

Viele Probleme wurden schon mal gelöst ;-)

Ist das ein Json Format? Damit kenne ich mich noch nicht ganz aus.

0
@DatAnswerFromMe

Das 

{'blue': 3, 'red': 2, 'yellow': 1}

nennt sich in Python Dictionary, dazu gibt es eine gute Menge Dokumentation :-)

0

Es wäre gut, wenn ich es so umwandeln könnte:

Blue: 3

Red: 2

Yellow: 1

0
@DatAnswerFromMe

Nicht schlimm, das sind auch nicht mehr die Basics. Wenn du möchtest, kannst du ja auch etwas eigenes für das Problem schreiben, dann hast dus quasi ein Mal selbst gemacht.

Ich glaube nur viele von deinen Problemen lassen sich durch googlen ziemlich schnell herausfinden -- so lernst du dann auch mehr, als wenn du die richtige Lösung quasi "vorgesagt" bekommst :-)

1
@karajan9

Du willst wohl echt nicht mit der Lösung rausrücken xD Ist gut so, bin gerade so demotiviert aber will das noch kurz machen (lassen! :D)

Naja ich danke dir für das, was du mir schon gesagt hast. Hat mir aufjedenfall schon weitergeholfen.

0
@DatAnswerFromMe

Welche Lösung meinst du? Mit den Sachen, die ich dir gesagt habe müsste das doch inzwischen klappen, oder?

Wenn du willst, kann ich dir auch noch einen Algorithmus zum selbstprogrammieren sagen -- kommt halt drauf an, was du willst oder dir davon versprichst.

0
@karajan9

Ich weiß nicht was iterieren heißt: Aber ich möchte dieses Format haben:

Blue: 3

Yellow: 2

Pink: 1

0
@DatAnswerFromMe

Iterieren heißt mit einer Schleife jedes Element durchgehen.

Magst du mir mal sagen, was allgemein deine Programmierkenntnisse sind, dann ist es vielleicht leichter dir zu helfen.

0
@karajan9

Ich habe jetzt mit dem Counter Objekt die Werte und die Anzahl wie oft diese Werte in der Liste vorkommen.

Ich möchte jetzt mit einer Schleife die Werte und die Anzahl durchgehen. Wie mache ich das?

Beispiel:

for verschiedenewerte in liste

    verschiedenewerte.anzahl

0
@DatAnswerFromMe
for lektion in liste: # <-- hier den Doppelpunkt nicht vergessen
    anzahl = liste[lektion]

So müsstest du Zugriff sowohl auf die Lektion als auch die passende Anzahl haben. Ich hoffe, das klappt so.

0
@DatAnswerFromMe

Diese Schleife ist das einzige, was ich zur Umsetzung meiner Idee brauche.

for verschiedenewerte in liste

        print("Du hast Lektion " + verschiedenewerte.lektion + " " +       verschiedenewerte.wert + " mal abgefragt!")

0
@DatAnswerFromMe

Es muss also immer nur einmal der Wert durchgegangen werden.. Nicht alle Werte in der Liste, sondern nur immer einmal für alle male, die der gleiche Wert da ist.

0
@karajan9

Deine Schleife hat eine Fehlermeldung hervorgehoben.

Ich möchte doch nur die Counter Methode haben, aber sie irgendwie als Liste durchgehen :/

0
@DatAnswerFromMe

Wenn du mir den Fehler auch sagst, kann ich dir vielleicht sogar helfen. Wichtig ist, dass "liste" der Counter ist, oder eben

counter = Counter(liste)
for lektion in counter:
    ...
0
@DatAnswerFromMe

Mit deiner Methode kann ich schon mal sehr schön die Werte auslesen. Aber wie kriege ich jetzt noch raus wie oft diese Werte vorkommen? :)

PS: Du hast gleich deine beste Antwort ^^

0
@DatAnswerFromMe

Na, wie gesagt:

counter = Counter(liste)
for lektion in counter: # <-- hier den Doppelpunkt nicht vergessen
    anzahl = counter[lektion]
    print("Du hast Lektion", lektion, anzahl, "Mal abgefragt!")
0
@DatAnswerFromMe
counter = Counter(liste)
for lektion in sorted(counter):
anzahl = counter[lektion]
print("Du hast Lektion", lektion, anzahl, "Mal abgefragt!")
0
@karajan9

Letztes Anliegen:
Ich möchte nicht nach Lektionsnamen sortieren, sondern nach Anzahl wie oft ich diese abgefragt habe.

0
@DatAnswerFromMe
counter = Counter(liste) for lektion, anzahl in counter.most_common():
print("Du hast", lektion, anzahl, "Mal abgefragt")

Als Erklärung dazu: In Python kann eine Funktion mehrere Werte zurück geben, die sind dann in Tupeln organisiert. Das sie dann so aus

("Lektion1", 5)

An die enzelnen Werte kommst du dran, in dem du jedem einer Variable zuweist, also:

lektion, anzahl = ("Lektion1", 5)

Genau das passiert im Kopf der Schleife, daher kannst du direkt auf den Namen der Lektion und die entsprechende Anzahl zugreifen -- weil die Funktion most_common() das so zurückgibt.

0
@karajan9

Danke für deine Großzügige Hilfe. Jetzt funktioniert alles perfekt! :)

0
@DatAnswerFromMe

Jetzt kann der NUtzer von dem Vokabelübersetzer in bester Reihenfolge angeordnet sehen, welche Vokabeln er abgefragt hat und welche Lektionen er nicht wusste, damit er sie lernen kann :)

0

Wie printe ich eine Liste in Python 3 zweilenweise aus?

Ich möchte eine Liste l = [2,3,4,5] so printen lassen, dass es mit Python die Werte zeilenweise untereinander ausgibt:

2
3
4
5

Was schreibe ich dann?

...zur Frage

Wie wandle ich bei meinem Programm in Python 3 strings in int um?

Ich bin keine Informatikstudentin, sondern probiere erst seit kurzem selbstständig rum. Ich kenne mich also nicht mit Fachtermina aus und mir fehlen bestimmt noch so einige Basics. Ich bitte herzlich das zu berücksichtigen.

Mein Programm soll Zahlen aus einer .txt- Datei als Liste lesen und anschließend Rechenschritte durchführen.

Mein Problem ist, dass sobald ich die txt.-Datei zur Liste verarbeite, mir die Zahlen als strings und nicht als int erscheinen. Ich möchte, dass das Programm alle 'str' innerhalb der Liste in int umwandelt. Und ich habe Probleme dabei diesen Schritt zu schreiben.

Ich habe Foren durchsucht und vieles, dort mir zu kompliziertes ausprobiert, was aber nicht geklappt hat.

Das müsste doch irgendwie simpel mit dem int()- Befehl in einer Schleife lösbar sein, oder? Ich kriege das so aber einfach nicht hin.

Ich lasse mal den Teil mit den Rechenwegen weg und mir soll einfach nur die Liste mit int-Zahlen erscheinen.

---

f= open ("numbers.txt",encoding=utf-8")

numbers = f.read()

f.close()

l = list (numbers)

???????

print (numbers)

---

for number in numbers():

int(number)

Funktioniert z.B. nicht

In meiner Textdatei stehen die Zahlen zeilenweise einzeln untereinander.

...zur Frage

Wie kann ich mit Python Elemente einer Liste addieren und diese in eine neue schreiben?

"Guten Tag,

ich habe eine List, welche so aussieht:

List: [1, 41, 6, 1, 41, 13]

nun will ich die elemente addieren und eine neue liste erstellen also so:

[42, 48, 49, 90, 103]

also das erste element soll mit dem darauffolgenden addiert werden, das ergebnis abgespeichert und wiederrum mit dem nächsten addiert werden.

mir fehlt noch der richtige denkanstoß

ich hoffe ihr könnt mir weiterhelfen

...zur Frage

Wie speichert man in Python Nutzer-eingaben so, dass sie auch nach beendigung des Programms noch in einer Liste im Programm enthalten sind?

Moin, mein Ziel ist es eine vom Nutzer des Programms getätigte Eingabe im Programm zu speichern, sodass sie auch nach dem Neustart des Programms noch enthalten ist und nicht mit dessen Beendigung/bei dessen Neustart gelöscht wird. Gibt es dafür einen Befehl? und wenn ja wie lautet er? Danke im Vorraus Gerred

...zur Frage

python liste in int konvertieren?

Ich habe Liste mit list = ['8', '7', 6,5]

wie bekomme ich daraus einen Integer i = 8765?

...zur Frage

Python: Variable mit einem Wert aus einer List vergleichen?

Hallo, ich muss irgendwie eine Variable wie z.B. "3-0-7-4-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0" mit einem Wert aus einer List vergleichen / überprüfen ob diese Variable in der List ist.

Ich weiß das es mit:

if variable in list

Funktionieren würde, aber der Wert der Variable ist nicht genau der selbe wie der in der Liste:

Wert der Variable:

"3-0-7-4-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0"

Wert des Listeneintrags:

"3-0-7-4-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 , 2"

Wie muss ich das schreiben wenn es so trotzdem den Wert in der List finden soll?

Ich habe die Werte auch in einer .csv Datei:

Kann ich sie damit irgendwie vergleichen lassen?

Die Werte in der .csv Datei sind nur beispiele, es werden später unterschiedliche Werte sein.

...zur Frage

Was möchtest Du wissen?