Abgleich von Listen mit unterschiedlichem Inhalt
Verfasst: Donnerstag 20. Oktober 2016, 21:57
2 Listen vergleichen und zwar der Form a = [1, 2, 4] und b = [2, 3, 4], woraus dann folgende Liste gebildet werden soll ergebnis = [ [1, "-"], [2, 2], ["-", 3], [4, 4]]. Die Input-Listen bekomme ich vorgegeben und sie haben die Form wie bei a und b. Ihre Anzahl kann variieren (hier mal mit 3), die Ausgabe(form) ist ebenfalls vorgegeben.
Gibt es dazu ein besseres Verfahren als folgendes (Abgleich-Liste abgleich bilden in dieser Form und darüber iterieren, um die Listen abzugleichen):
Liefert in der Konsole:
[codebox=text file=Unbenannt.txt]a | b | c
==========
1 | - | 1
2 | 2 | 2
- | 3 | 3
4 | 4 | -[/code]
Gibt es dazu ein besseres Verfahren als folgendes (Abgleich-Liste abgleich bilden in dieser Form und darüber iterieren, um die Listen abzugleichen):
Code: Alles auswählen
a = [1, 2, 4]
b = [2, 3, 4]
c = [1, 2, 3]
listen = [a, b, c]
abgleich = list(set(a + b + c))
print(abgleich)
ausgabe = []
for item in abgleich:
line = []
for liste in listen:
if item in liste:
line.append(item)
else:
line.append("-")
ausgabe.append(line)
# Folgende Ausgabe nur zu Testzwecken
print(" | ".join(["a", "b", "c"]), end="\n==========\n")
for line in ausgabe:
print(" | ".join(map(str, line)))[codebox=text file=Unbenannt.txt]a | b | c
==========
1 | - | 1
2 | 2 | 2
- | 3 | 3
4 | 4 | -[/code]