Il y a mon code comme vous le voyez se connecte à dB, sélectionne une colonne et l'attrape en résultat
Au fait, il y a 4 lignes dedans, 1er et 4ème sont nuls
Lorsque j'imprime le résultat, cela me donne ce p> Pourquoi y a-t-il des supports avant et après chaque élément; sont des éléments de support aussi; Comment puis-je vous débarrasser d'eux ne laissant que «aucun et 'd'utile p> la sortie souhaitée est p>
3 Réponses :
Si vous avez toujours besoin d'obtenir le premier élément de chaque tuple (singleton) dans votre liste, la méthode "universelle": si vous voulez quelque chose d'un peu plus pythonique, alors vous peut utiliser Python's compréhension de la liste : p> outputs = [first_element for (first_element, ) in inputs]
Vous pouvez également utiliser iTerTools code >
from itertools import chain list(chain.from_iterable(result)) [None, 'useful', 'useful', None]
Eh bien, si la base de données peut être importante, elle peut être sous-optimale de créer d'abord une liste de 1-tuples à la convertir en une liste de valeurs. La documentation Python pour SQLite3 annonce d'utiliser La liste finale pourrait être construite de cette manière: p> fetchmany code> avec sa valeur par défaut pour la taille des performances optimales.
def chunks(cursor):
while True:
chunk = c.fetchmany()
if len(chunk) == 0: return
yield chunk
...
result = [row[0] for chunk in chunks(c) for row in chunk]
Quelle est la sortie souhaitée? Pouvez-vous modifier la question pour montrer que s'il vous plaît.
@aws_apprentice édité
fetchall () renvoie une liste => [résultat1, résultat2, ..., résultat]. Chaque résultat peut être composé de multiples colonnes (vous avez sélectionnée juste une) => (colonne1, colonne2, ....)