Vergleichen von Werten in zwei Listen in Python

8

In Python 2.7 habe ich zwei Listen mit ganzen Zahlen:

%Vor%

Ich möchte eine dritte Liste erstellen, die angibt, ob jedes Element in x und y identisch ist, um Folgendes zu erhalten:

%Vor%

Wie kann ich dies mithilfe des Listenverständnisses tun?

Mein Versuch ist:

%Vor%

Aber ich weiß nicht, wie ich es vervollständigen soll.

    
Karnivaurus 07.10.2015, 15:25
quelle

3 Antworten

22

Sie suchen zip

%Vor%

Aber Sie fügen besser int hinzu, um die gewünschte Ausgabe zu erhalten

%Vor%

Sonst bekommst du eine Liste wie [True, False, True, False, False]

Wie ajcr erwähnt in einem Kommentar , es ist besser, itertools.izip statt Reißverschluss zu verwenden, wenn die Listen sehr lang sind. Dies liegt daran, dass es einen Iterator anstelle einer Liste zurückgibt. Dies wird in der Dokumentation

erwähnt
  

Wie zip () außer , dass es einen Iterator anstelle einer Liste zurückgibt.

Demo

%Vor%     
Bhargav Rao 07.10.2015, 15:26
quelle
3

Sie können es ein wenig ändern und tun:

%Vor%

Wenn Sie Python3 verwenden, ändern Sie xrange in range

    
SomethingSomething 07.10.2015 15:29
quelle
1

Obwohl ein Listenverständnis in der Frage spezifiziert wurde und die obigen Antworten wahrscheinlich besser sind, dachte ich, ich würde mit einer rekursiven Lösung klingeln:

%Vor%     
Andrew Winterbotham 15.10.2015 11:22
quelle