dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[python]リストからNoneでない最初の要素を取得する

ちょいメモ。

いきなりやり方。

# "items"はlist
item = next((item for item in items if item), 'All are Nones')

ここで、第2引数はNoneでない要素がなかった時に返されるデフォルト値なので、何でもいいです。

使用例

>>> a = [None, None, None, 1, 2, 3, 4, 5]
>>> next((item for item in a if item), None)
1

補足

nextの第2引数に何も指定しないと、Noneでない要素がなかった時にStopIterationエラーが発生します。

>>> a = [None, None, None]
>>> next((item for item in a if item))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

リファレンス

python - Getting the first non None value from list - Stack Overflow

http://docs.python.jp/2/library/functions.html#next