Jeśli masz iterację w Pythonie, aby utworzyć listę, wystarczy wywołać list()
wbudowany
:
list(cursor.fetchall())
Pamiętaj, że element iteracyjny jest często tak samo przydatny jak lista i potencjalnie bardziej wydajny, ponieważ może być leniwy.
Twój oryginalny kod zawodzi, ponieważ nie ma zbyt wiele sensu. Zapętlasz wiersze i wyliczasz je, więc otrzymujesz (0, first_row), (1, second_row)
itp... - oznacza to, że tworzysz listę n-tej pozycji każdego n-tego wiersza, co wcale nie jest tym, czego chciałeś.
Ten kod pokazuje pewne problemy - po pierwsze, list()
bez żadnych argumentów lepiej jest zastąpić pustym literałem listy ([]
), ponieważ jest łatwiejszy do odczytania.
Następnie próbujesz wykonać pętlę według indeksu, to zły pomysł w Pythonie. Zapętlaj wartości, same, a nie indeksy, których używasz do uzyskania wartości.
Pamiętaj też, że kiedy to robisz trzeba zbudować taką listę wartości, ze zrozumieniem listy to najlepszy sposób na zrobienie tego, zamiast tworzenia listy i dołączania do niej.