0

Ich versuche, das effizienteste Verfahren zum Sortieren, Prüfung und Zuordnung durch einen Multi-Array in Python zu finden. HierSortierung durch ein mehrdimensionales Array in Python

ist ein Multi-Array: enthält Daten der Nutzer

persons = [['Person 1', 15, 'USA', 'BLACK'], 
      ['Person 2', 12, 'AUS', 'WHITE'], 
      ['Person 3', 34, 'CAN', 'PINK'], 
      ['Person 4', 18, 'CHINA', 'BLUE']] 

Hier ist mein Code für die Sortierung durch. Es funktioniert nicht. Ergebnis: Getting 'NOT FOUND!'

persons_profile = [] 
    for i, item in enumerate(persons): 

     persons_profile .append(item) 
     if(persons_profile [0] == 'Person 1'): 
      person_id = persons_profile [0] 
      person_age = persons_profile [1] 
      person_country = persons_profile [2] 
      person_color = persons_profile [3] 
      print "Person id", persons_profile [O] 
      some_function() 

     elif(persons_profile [0] == 'Person 2'): 
      person_id = persons_profile [0] 
      person_age = persons_profile [1] 
      person_country = persons_profile [2] 
      person_color = persons_profile [3] 
      print "Person id", persons_profile [O] 
      some_function() 

     elif(persons_profile [0] == 'Person 3'): 
      person_id = persons_profile [0] 
      person_age = persons_profile [1] 
      person_country = persons_profile [2] 
      person_color = persons_profile [3] 
      print "Person id", persons_profile [O] 
      some_function() 

     elif(persons_profile [0] == 'Person 4'): 
      person_id = persons_profile [0] 
      person_age = persons_profile [1] 
      person_country = persons_profile [2] 
      person_color = persons_profile [3] 
      print "Person id", persons_profile [O] 
      some_function() 

     else: 
      print "NOT FOUND!" 

Was ist der beste Weg, und Test zu sortieren, wenn das Element 0, 1, 2, 3 im Index 0, 1, 2, 3 in dem Multi-Array gleich etwas?

Antwort

1
persons_profile.append(item) 

Hier Sie setzen list Artikel in list persons_profile.

und hier:

if persons_profile[0] == 'Person 1': 

Sie vergleichen str mit list.

Und schließlich, da es immer False Sie else Zweig gehen.

+0

Hi @xi_ Wie gehe ich vor, um ein Element vom Typ str/int in einer Liste innerhalb der Liste persons_profile zu vergleichen? - Code2016 Vor 12 Minuten – Code2016

+1

@ Code2016 sollten Sie in die Liste gehen: 'if persons_profile [0] [0] == 'Person 1':' –