Unterschied zwischen der Verwendung von [] und list () in Python

7

Kann jemand diesen Code erklären?

%Vor%

AUSGABE:

%Vor%     
WebOrCode 16.05.2014, 19:22
quelle

4 Antworten

18

Wenn Sie ein Objekt dict in eine Liste konvertieren, werden nur die Schlüssel benötigt.

Wenn Sie es jedoch mit eckigen Klammern umgeben, bleibt alles gleich, es wird nur eine Liste von dict s mit nur einem Element erstellt.

%Vor%

Dies liegt daran, dass beim Schleifen mit einer for -Schleife nur die Schlüssel benötigt werden:

%Vor%

Wenn Sie jedoch die Werte und erhalten möchten, verwenden Sie .items() :

%Vor%

Verwenden einer for Schleife:

%Vor%

Wenn Sie jedoch list.__doc__ eingeben, erhalten Sie dasselbe wie [].__doc__ :

%Vor%

Art der Irreführung:)

    
A.J. Uppal 16.05.2014, 19:23
quelle
7
  • Ersteres umschließt das gesamte Objekt in eckigen Klammern [] und macht es zu einer Liste mit einem Eintrag:

    %Vor%
  • Letzteres iteriert über das Wörterbuch (Schlüssel erhalten) und erstellt daraus eine Liste:

    %Vor%
Alex Thornton 16.05.2014 19:25
quelle
3
%Vor%

Im ersten Fall zeigt die Notation an, dass Sie eine Liste mit einem Wörterbuch als Objekt erstellen. Die Liste wird leer erstellt und das Wörterbuch wird als Objekt angehängt.

Im zweiten Fall rufen Sie die zweite Form des Listenkonstruktors auf - "initialisiert aus iterablen Elementen". In einem Wörterbuch sind die Schlüssel iterierbar, sodass Sie eine Liste der Wörterbuchschlüssel erhalten.

    
orpheist 16.05.2014 19:26
quelle
3

Die Liste ist ein Konstruktor, der eine beliebige Grundsequenz (also Tupel, Wörterbücher, andere Listen usw.) verwendet und diese in Listen umwandeln kann. Alternativ könnten Sie die Listen mit [] erstellen und eine Liste mit allen Dingen erstellen, die Sie in die Klammern setzen. Sie können die gleichen Dinge mit Listenverständnis erreichen.

%Vor%     
coding_buddha 16.05.2014 19:26
quelle

Tags und Links