Pokud máte iterovatelný v Pythonu a chcete vytvořit seznam, můžete jednoduše zavolat list()
vestavěný
:
list(cursor.fetchall())
Všimněte si, že iterovatelný je často stejně užitečný jako seznam a potenciálně efektivnější, protože může být líný.
Váš původní kód selže, protože nedává příliš smysl. Procházíte řádky a vyjmenujete je, takže získáte (0, first_row), (1, second_row)
, atd... - to znamená, že vytváříte seznam n-tých položek každého n-tého řádku, což vůbec není to, co jste chtěli.
Tento kód ukazuje některé problémy - za prvé list()
bez jakýchkoli argumentů je obecně lepší nahradit literálem prázdného seznamu ([]
), protože se snáze čte.
Dále se pokoušíte smyčkovat podle indexu, to je v Pythonu špatný nápad. Smyčka přes samotné hodnoty, nikoli indexy, které pak použijete k získání hodnot.
Pamatujte také, že když uděláte potřeba vytvořit seznam hodnot, jako je tento, pochopení seznamu je nejlepší způsob, jak to udělat, spíše než vytvářet seznam a pak k němu přidávat.