1. ホーム
  2. python

[解決済み] Pythonでリストの各タプルの最初の要素を取得する [重複]。

2022-05-09 22:20:34

質問

SQLクエリを実行すると、次のようなタプルのリストが得られます。

[(elt1, elt2), (elt1, elt2), (elt1, elt2), (elt1, elt2), (elt1, elt2), ...]

各タプルの最初の要素をすべて表示したいのですが。今、私はこれを使っています。

rows = cur.fetchall()
res_list = []
for row in rows:
    res_list += [row[0]]

でも、もっといい構文があるんじゃないかと思うんです。もっといい方法をご存知ですか?

どのように解決するのですか?

を使用します。 リスト内包 :

res_list = [x[0] for x in rows]

以下はデモです。

>>> rows = [(1, 2), (3, 4), (5, 6)]
>>> [x[0] for x in rows]
[1, 3, 5]
>>>


の代わりにアンパッキングを使用することもできます。 x[0] :

res_list = [x for x,_ in rows]

以下はデモです。

>>> lst = [(1, 2), (3, 4), (5, 6)]
>>> [x for x,_ in lst]
[1, 3, 5]
>>>

どちらの方法も実質的に同じことをするので、好きな方を選べばいいのです。