@NewPython19: Was die Funkion macht ist ja eigentlich schon klar, aber wie schon gesagt ist es besser ``with`` und `contextlib.closing()` zu verwenden. Der Kommentar bei der Zeile wäre auch nicht nötig gewesen.
Ich glaube ich erwähnte schon mal, das man Namen in Python klein_mit_unterstrichen schreibt, also `close_database()` statt `closeDatabase()`.
Es wäre schön wenn Du den Code in die entsprechenden Code-Tags einfasst und nicht als Zitat, denn dabei geht die in Python nicht ganz unwichtige Einrückung in der Anzeige verloren.
Bei Namen in SQL ist Gross-/Kleinschreibung eigentlich egal, aber einige DBMS können da doch Unterschiede machen. Deshalb würde ich Namen dort immer klein schreiben. Dann ist man auch bei einem DBMS-Wechsel auf der sicheren Seite.
Das englische Wort „address“ schreibt sich mit zwei „d“.
Das der Rückgabewert von `cursor.execute()` in eine Zeichenkette umgewandelt wird, mit der dann nicht gemacht wird, macht keinen Sinn.
`list` ist ein sehr schlechter Name für eine Liste, weil man sich damit den Namen des eingebauten Datentyps verdeckt. Grunddatentypen haben in Namen auch nichts verloren.
Das Entpacken eines einzelnen Wertes per ``,`` finde ich persönlich ein bischen zu kryptisch. Das übersieht man leicht.
Ungetestet:
Code: Alles auswählen
import sqlite3
from contextlib import closing
with sqlite3.connect(database) as connection:
with closing(connection.cursor()) as cursor:
cursor.execute('SELECT name FROM address')
names = [row[0] for row in cursor]