Seite 1 von 2
Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 11:50
von bergen123
Hallo, Erste zu sagen das ich kein deusch bin..... ,
so, ich möchte ein program mache das es 12 Listen mit Nummer hat und eine Input .Der Input soll mit allen 12 Listen vergleichen und print die Nummer die mit der Input übereinstimmen .
Beispiel:
input : 2 14 34 12 23 45
Erste liste : ["2", "14", "18", "28","40", "48"]
print 2 14
ich habe diesen code geschrieben :
Code: Alles auswählen
w = raw_input("give number: ").split()
a1 = ["2", "14", "18", "28","40", "48"]
b2 = ["5", "9", "17", "21", "32", "49"]
c3 = ["4", "18", "19", "30", "47", "49"]
d4 = ["9", "15", "25", "28", "39", "43"]
e5 = ["8", "11", "13", "25", "39", "48"]
f6 = ["3", "12", "13", "14", "31", "33"]
g7 = ["3", "12", "14", "23", "26", "45"]
h8 = ["1", "10", "12", "15", "18", "37"]
i9 = ["6", "7", "17", "38", "41", "44"]
j10 = ["1", "7", "14", "17", "27", "35"]
k11 = ["15", "23", "25", "26", "39", "48"]
l12 = ["5", "12", "14", "30", "41", "48"]
for a,b,c,d,e,f,g,h,i,j,k,l in zip(a1, b2, c3, d4, e5, f6, g7, h8, i9, j10, k11, l12):
if a in w :
print "(1)", a
elif b in w:
print "(2)", b
elif c in w:
print "(3)", c
elif d in w:
print "(4)", d
elif e in w:
print "(5)", e
elif f in w:
print "(6)", f
elif g in w:
print "(7)", g
elif h in w:
print "(8)", h
elif i in w:
print "(9)", i
elif j in w:
print "(10)", j
elif k in w:
print "(11)", k
else:
print "(12)", a
aber das Ergebnis ich bekomme habe , sind nicht gute....
give number: 2 14 18 28
(1) 2
(1) 14
(1) 18
(1) 28
(8) 40
(12) 48
Kann jemand Bitte diese probleme lösung? danke!
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 12:34
von Python1906
Hallo ich hätte eine Lösung.
Das Problem kommt erst bei der For-Schleife zustande.
ich würde dir empfehlen eine weitere Liste zumachen, wo deine Listen gespeichert sind (also : liste = [liste1, liste2, liste3...]
und dann mit einer For-Schleife das Array zu durchlaufen (also: for i in liste:) und dann mit noch einer For-Schleife die Werte zu überprüfen und auszugeben.
Es sieht folgendernmaßen aus:
[codebox=python file=Unbenannt.txt]
liste1 = ["1", "2", "3", "4"]
liste2 = ["5", "6", "7", "8"]
liste3 = ["9", "10", "11", "12"]
liste = [liste1, liste2, liste3]
for i in liste:
numbers = input("Geben sie bitte ein paar Zahlen ein").split()
for x in i:
if x in numbers:
print(x)[/code]
Ausgabe sieht dann zum Beispiel so aus:
Geben sie bitte ein paar Zahlen ein2 4 6 20 111
2
4
Geben sie bitte ein paar Zahlen ein4 8 23
8
Geben sie bitte ein paar Zahlen ein0
Du kannst selbstverständlich auch weitere Listen hinzufügen, indem du eine weitere Liste erstellst und sie (in diesem Beispiel) in liste hinzufügst
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 12:41
von Python1906
Wenn du auch noch möchtest, dass die Listennummer angezeigt wird sowie, dass ein Input für alle Listen gilt sieht es so aus:
Code: Alles auswählen
liste1 = ["1", "2", "3", "4"]
liste2 = ["5", "6", "7", "8"]
liste3 = ["9", "10", "11", "12"]
liste = [liste1, liste2, liste3]
numbers = input("Geben sie bitte ein paar Zahlen ein").split()
tmp = 0
for i in liste:
tmp += 1
for x in i:
if x in numbers:
print("("+str(tmp)+")"+x)
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 12:54
von bergen123
Erste viele Danks für deine Antwort!
wie ich verstehe dir , ich soll jedes mal von jedem Liste fragen ? , es wäre die moglichkeit nur eimal die Input ausfüllen?
Die Idee von diesen Programm ist bekomme weil ich ein lotto spiele bin

und Oft spiel alle 12 Spiel . ich habe keine hoffnumg mehr , mehr als 5 oder 6 Zahlen zu gewine

aber 2 number mit dem zusatzzahl man hat die möglichkeit zu gewine ... und als viele number zu kontroliert sind , habe ich gedacht diese Programm machen ....
meine antwort auf dir habe geschrieben bevor
Verfasst: Samstag 24. Juni 2017, 13:28
von bergen123
die deine zweite antwort gelesen habe.... deine zweite antwort gefällt mir mehr.... jetz möchte ich versuche wie auf meine erste frage war .Danke für deine Beispielen , ich hoffe jetzt wird einfacher...
(1)1 2
(2)5
(3)10
ich bedanke mich für deine mühe !
ich wünsche dir ein Schöne Wochenende!!
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 16:23
von BlackJack
@bergen123: Das ist ein Fall für Mengen und Mengenoperationen:
Code: Alles auswählen
In [6]: A
Out[6]: {'14', '18', '2', '28', '40', '48'}
In [7]: B = set('2 14 34 12 23 45'.split())
In [8]: B
Out[8]: {'12', '14', '2', '23', '34', '45'}
In [9]: A & B
Out[9]: {'14', '2'}
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 17:11
von pixewakb
In der Onlinehilfe habe ich zum Thema folgenden Abschnitt gefunden:
https://docs.python.org/3.6/library/std ... ht=set#set
Ich meine nicht, dass ich dass in meiner Einführung (Buch) hatte. Löst einige Probleme sehr elegant, wenn ich das anmerken darf.
Danke für deine Beispiel
Verfasst: Samstag 24. Juni 2017, 17:42
von bergen123
ich habe machmal mit zwei Listen gearbeitet , wenn zeit habe , nur sind sachen die ich vergese.....ich habe seit ein Jahr Python zu lernen , Erste mit codecademy und zur Zet versuche Übungs machen wie Beispiel
http://easyprog99.blogspot.de/2017/02/4 ... cises.html
set Method ich denke wird benutz auch wenn eine tuple wiederholt sich in eine liste , wird sie gelost , Beispiel:
Code: Alles auswählen
a = {'14', '18', '2', '28', '40', '48'}
b = {'12', '14', '23', '45', '34', '2'}
c = set(a & b)
print c
aber arbeite mit 12 Listen , war meine Erste mal ..., weisst du wie ich kann der Codec von Python1906 , weiter machen ....
Code: Alles auswählen
w = raw_input("give number: ").split()
a1 = ["2", "14", "18", "28","40", "48"]
a2 = ["5", "9", "17", "21", "32", "49"]
a3 = ["4", "18", "19", "30", "47", "49"]
a4 = ["9", "15", "25", "28", "39", "43"]
a5 = ["8", "11", "13", "25", "39", "48"]
a6 = ["3", "12", "13", "14", "31", "33"]
a7 = ["3", "12", "14", "23", "26", "45"]
a8 = ["1", "10", "12", "15", "18", "37"]
a9 = ["6", "7", "17", "38", "41", "44"]
a10 = ["1", "7", "14", "17", "27", "35"]
a11 = ["15", "23", "25", "26", "39", "48"]
a12 = ["5", "12", "14", "30", "41", "48"]
liste = [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12]
c = 0
for i in liste:
c += 1
for x in i:
if x in w:
print ("("+str(c)+")"+x)
wenn ich schreibe diese Number: 2 9 15 6 7
ich bekomme so:
(1)2
(2)9
(4)9
(4)15
(8)15
(9)6
(9)7
(10)7
(11)15
Aber ich möchte , das sie kommen so...
(1) 2
(2) 9
(4) 9 15
(8) 15
(9) 6 7
(10) 7
(11) 15
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 20:23
von nono191
Ich würde dazu den Wert zwischenspeichern und beim nächsten Durchlauf schauen ob diese gleich sind.
Etwa so:
Code: Alles auswählen
w = raw_input("give number: ").split()
a1 = ["2", "14", "18", "28","40", "48"]
a2 = ["5", "9", "17", "21", "32", "49"]
a3 = ["4", "18", "19", "30", "47", "49"]
a4 = ["9", "15", "25", "28", "39", "43"]
a5 = ["8", "11", "13", "25", "39", "48"]
a6 = ["3", "12", "13", "14", "31", "33"]
a7 = ["3", "12", "14", "23", "26", "45"]
a8 = ["1", "10", "12", "15", "18", "37"]
a9 = ["6", "7", "17", "38", "41", "44"]
a10 = ["1", "7", "14", "17", "27", "35"]
a11 = ["15", "23", "25", "26", "39", "48"]
a12 = ["5", "12", "14", "30", "41", "48"]
liste = [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12]
c = 0
for i in liste:
c += 1
for x in i:
if x in w:
new = "("+str(c)+")"+x
if c != 1:
if new.strip(x) == old.strip(oldx):
print "("+str(oldc)+"("+oldx+" "+x
else: print new
else: print new
old = new
oldx = x
oldc = c
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 21:02
von BlackJack
@nono191: Das sieht jetzt maximal unverständlich, umständlich, und ineffizient aus. Sofern es überhaupt funktioniert. Das vermag ich nicht zu sagen, weil ich's ausprobieren müsste, denn verstehen tue ich es auf den ersten Blick nicht, und für einen zweiten vergeht mir die Lust wenn ich draufschaue.

Viele danks für deine code,
Verfasst: Samstag 24. Juni 2017, 21:13
von bergen123
das ist was ich suche!
wenn ein Tag möchtest , es wäre die möglichkeit beschreibt jeden schritte , ich möchte nicht nur kopiert sondern lernen, warum das so ist ...
nur wenn du ein Tag Lust hast.....
ich bedanke dir für deinen Mühe!
ich wünsche dir eine Schöne Wochenende!
@nono191 ich habe bis der Mitte verstande...
Verfasst: Samstag 24. Juni 2017, 21:33
von bergen123
Code: Alles auswählen
w = raw_input("give number: ").split()
a1 = ["2", "14", "18", "28","40", "48"]
a2 = ["5", "9", "17", "21", "32", "49"]
a3 = ["4", "18", "19", "30", "47", "49"]
a4 = ["9", "15", "25", "28", "39", "43"]
a5 = ["8", "11", "13", "25", "39", "48"]
a6 = ["3", "12", "13", "14", "31", "33"]
a7 = ["3", "12", "14", "23", "26", "45"]
a8 = ["1", "10", "12", "15", "18", "37"]
a9 = ["6", "7", "17", "38", "41", "44"]
a10 = ["1", "7", "14", "17", "27", "35"]
a11 = ["15", "23", "25", "26", "39", "48"]
a12 = ["5", "12", "14", "30", "41", "48"]
liste = [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12]
c = 0
for i in liste:
c += 1
for x in i:
if x in w:
print "(" + str(c) + ")" + x
was unten stehe nicht.... auch wenn ich diese Ergebnis suche , es wäre die moglichkeit eine andere lösunge mehr verständliche schreiben....
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Samstag 24. Juni 2017, 23:37
von nono191
Also dieser Code speichert einfach die letzten Ergebnisse mit:
Prüft ob es die erste Zahl ist:
Vergleicht es das c (Das c steht nachher in den Klammern.) von der letzten Zahl und von dieser.
Wenn es gleich ist printet es das c und beide Ergebnisse die für das c stimmen:
Auch dir schönes Wochenende und Entschuldigung wenn es nicht sehr gut geschrieben ist.
nono
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Sonntag 25. Juni 2017, 08:31
von Sirius3
@nono191: was Du da also beschreibst, ist eine komplizierte Methode, um oldc mit c zu vergleichen. Zudem ist sie falsch und funktioniert nur, weil Du Glück hast. Und sobald man mehr als zwei Treffer hat, bekommt man seltsame Ausgaben. »strip« entfernt alle Zeichen, die man als Argument übergibt. Da Du das c in Klammern packst und x nie eine Klammer enhält, geht das zufälligerweise gut. Aber schau mal hier:
Code: Alles auswählen
>>> c = 3
>>> x = "23"
>>> new = str(c)+": "+x
>>> new
'3: 23'
>>> new.strip(x)
': '
@bergen123: Mengen (set) sind praktisch, weil sie schon eine Methode besitzen im aus zwei Mengen, die gemeinsamen Elemente herauszufinden. Du hast also 12 Sets von getippten Zahlen und ein Set von gezogenen Zahlen, die Du nun nur noch miteinander vergleichen mußt. Da Du wissen willst, im wievielten Feld es wieviele Übereinstimmungen gibt, liefert »enumerate« eine zusätzliche Zählvariable
Code: Alles auswählen
bet_numbers = [
{"2", "14", "18", "28","40", "48"},
{"5", "9", "17", "21", "32", "49"},
{"4", "18", "19", "30", "47", "49"},
{"9", "15", "25", "28", "39", "43"},
{"8", "11", "13", "25", "39", "48"},
{"3", "12", "13", "14", "31", "33"},
{"3", "12", "14", "23", "26", "45"},
{"1", "10", "12", "15", "18", "37"},
{"6", "7", "17", "38", "41", "44"},
{"1", "7", "14", "17", "27", "35"},
{"15", "23", "25", "26", "39", "48"},
{"5", "12", "14", "30", "41", "48"},
]
drawn_numbers = set(raw_input("drawn numbers: ").split())
for index, numbers in enumerate(bet_numbers, start=1):
correct = drawn_numbers & numbers
if correct:
print "({}) {}".format(index, ', '.join(sorted(correct)))
@ Sirius3
Verfasst: Sonntag 25. Juni 2017, 10:22
von bergen123
Vieleeeeeeeee Danks für deine bemühe!!!!!!
was ich nicht verstehe:
if correct:
weil nochmal anweisen der If statement vergleich mit etwas.......
weiss du wo ich Ähnliche Übungen wie diese(man wird set und format benutz) finde kann , aber die nicht zu schwierig sind..... meine Python kenntnis ist sehr einfach.... ich möchte diese zwei Begriffe tiffer in meine Kopf haben..... und das beste lösung ist , mit Übungen.....
ich wünsche dir eine Schöne Wochenende!!!
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Sonntag 25. Juni 2017, 10:42
von BlackJack
@bergen123: Nach ``if`` muss kein Vergleich stehen sondern irgend ein beliebiger Ausdruck der ”wahr” oder ”falsch” ergibt, also `True` oder `False` wenn man die `bool()`-Funktion mit dem Ergebnis aufruft. Und leere Container sind in diesem Kontext ”falsch”, während Container mit mindestens einem Element ”wahr” sind:
Code: Alles auswählen
In [1]: bool('')
Out[1]: False
In [2]: bool('x')
Out[2]: True
In [3]: bool([])
Out[3]: False
In [4]: bool([42])
Out[4]: True
In [5]: bool({})
Out[5]: False
In [6]: bool({'answer': 42})
Out[6]: True
In [7]: bool(set())
Out[7]: False
In [8]: bool(set([42]))
Out[8]: True
Sorry , hast du recht.....
Verfasst: Sonntag 25. Juni 2017, 11:29
von bergen123
um Python zu lernen (so, ich lerne noch....) habe ich Erste mit
https://automatetheboringstuff.com/ angefang , dann bin ich in codecademy gegangen und dann wo ich bin jetz....
so , zurück zum Boolean... , hast du Recht
if Statements gehört zum Boolean
https://automatetheboringstuff.com/chapter2/
Ich möchte ALLE euch bedanke !!
Verfasst: Sonntag 25. Juni 2017, 11:58
von bergen123
ohne euch ich werde diese Übung nicht gemacht . ich habe vor drei Tage in stackoverflow
https://stackoverflow.com/questions/446 ... 1#44737431 gefragt , und keine hat mich antgewortet... , ich habe bemerke die bei stackoverflow stehe mehr um viele Pukten zu bekommen als andere Menschen zu hilfe , ich weiss sind nicht alle , aber am meisten .... mehr punkten bedeutet mehr chance um sich zu bewerben.... jetzt möchte ich eure lösung zu lernen...
danke euch!!
sorry noch andere frage....
Verfasst: Sonntag 25. Juni 2017, 14:15
von bergen123
Code: Alles auswählen
bet_numbers = [
{"2", "14", "18", "28","40", "48"},
{"5", "9", "17", "21", "32", "49"},
{"4", "18", "19", "30", "47", "49"},
{"9", "15", "25", "28", "39", "43"},
{"8", "11", "13", "25", "39", "48"},
{"3", "12", "13", "14", "31", "33"},
{"3", "12", "14", "23", "26", "45"},
{"1", "10", "12", "15", "18", "37"},
{"6", "7", "17", "38", "41", "44"},
{"1", "7", "14", "17", "27", "35"},
{"15", "23", "25", "26", "39", "48"},
{"5", "12", "14", "30", "41", "48"},
]
Welche bedeutung hat die geschweifte Klammer nach der Klammer . Ich weiss die klammer wird für Listen und geschweifte Klammer für dictionary , aber beiden zusammen , welche bedeutung hat ?
sorry das ich frage

, aber habe gesucht in google , und nur sprechen oder von einer oder von andere , nicht wenn beiden zusammen sind...
Re: Wie kann 12 Listen zu vergleichen
Verfasst: Sonntag 25. Juni 2017, 14:58
von BlackJack
bergen123: Die geschweifte Klammer hat nach der eckigen Klammer die gleiche Bedeutung wie sonst auch: Menge (`set`) oder Wörterbüch (`dict`). Je nach dem was *in* den geschweiften Klammern steht.