2017-12-12 12 views
-1

Ich bin ganz neu in Python und ich würde aus jeder Liste jedes Element vergleichen mag:vergleichen 2 Listen aus verschiedenen Syntaxen Python

a=[] 
b=[] 


with open('dump.sql', 'r') as dump: 
    for line in dump: 
     if string1 in line: 
       tail1 = line.split(string1)[1] 
       for group1 in tail1.split("),("): 
         group1 = group1.replace("\'", "").replace("(", "").replace(")\n", "") 
         a.append(group1.split(",")[3].strip()) 
     if string2 in line: 
       tail2 = line.split(string2)[1] 
       for group2 in tail2.split("),("): 
         group2 = group2.replace("\'", "").replace("(","").replace(")\n","") 
         b.append(group2.split(",")[3].strip()) 

Da diese zwei Listen ist in 2 separaten „if“, kann verglichen werden ? Und wenn ja, wie? Ich habe mich gefragt, denn wenn ich versuche Liste ein in zweiter Stelle zu drucken, wenn ich nicht alles bekommen, so nehme ich an, dass verschiedene getan werden sollte, als der folgende Teil in der zweiten anhängen, wenn:

if(set(naptr)&set(naptra)): 
     c.append(group2.split(",")[4].strip()) 

Beste Grüße, Dan

+0

Haben Sie etwas versucht? a und b existieren definitiv außerhalb der if – WNG

+0

a und b wurden dort als leere Listen definiert, die später mit einigen Werten gefüllt werden, nachdem die Syntax iteriert wurde. – dante

Antwort

0

Vielleicht können Sie für dieses Python-Modul überprüfen: dfflib

Hier ein Beispiel:

list1 = [1, 2, 3] 
list2 = [1, 3, 4, 5] 
diffGenerator = difflib.ndiff(list1, list2) 
for diff in diffGenerator: 
    print(diff) 

Das Ergebnis wäre:

1 
- 2 
    3 
+ 4 
+ 5 
+0

Danke für Ihre Antwort. Das ist gut, aber ich brauche etwas wie: wenn Unterschied besteht zwischen a und b => etwas in Liste c hinzufügen. – dante

+0

Sie können das Ergebnis der Ndiff-Funktion verwenden, um eine dritte Liste zu erstellen? –

Verwandte Themen