1. ホーム
  2. python

[解決済み] Pythonで単一要素リストから要素のみを取得する?

2023-02-09 15:50:13

質問

Pythonのリストが常に1つの項目を含むことが分かっている場合、それ以外の方法でアクセスする方法はあるでしょうか。

mylist[0]

なぜそうしたいのか」と聞かれるかもしれません。好奇心だけです。という方法もあるようです。 何事も をPythonで行う別の方法があるようです。

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

例外を発生させるには 正確に でない場合は例外が発生します。

順次開梱。

singleitem, = mylist
# Identical in behavior (byte code produced is the same),
# but arguably more readable since a lone trailing comma could be missed:
[singleitem] = mylist

その他はspec違反を無視し、最初か最後の項目を生成します。

イテレータプロトコルの明示的な使用。

singleitem = next(iter(mylist))

破壊的なポップ。

singleitem = mylist.pop()

負のインデックスです。

singleitem = mylist[-1]

1回の繰り返しで設定 for (となります(ループ変数がループ終了時に最後の値で利用可能なままであるため)。

for singleitem in mylist: break

横行する狂気

# But also the only way to retrieve a single item and raise an exception on failure
# for too many, not just too few, elements as an expression, rather than a statement,
# without resorting to defining/importing functions elsewhere to do the work
singleitem = (lambda x: x)(*mylist)

他にもいろいろありますが(上記の断片を組み合わせたり、変化させたり、暗黙の反復に頼ったり)、だいたいのことはわかると思います。