web-dev-qa-db-ja.com

「x for x in」構文の意味は何ですか?

このコードが実行されたときに実際に起こること:

_text = "Word1anotherword23nextone456lastone333"
numbers = [x for x in text if x.isdigit()]
print(numbers)
_

_[]_はリストを作成し、.isdigit()は文字列(テキスト)の要素が数値である場合にTrueまたはFalseをチェックすることを理解しています。しかし、他のステップ、特に:「ループ」の前にある「x」は何をするのかわかりません。

出力が何であるかは知っていますが(下)、どのように行われますか

_Output: ['1', '2', '3', '4', '5', '6', '3', '3', '3']
_
9
Martin Melichar

これは単なる標準ですPythonリスト内包。これはforループをより長く書く別の方法です。文字列のすべての文字をループして、文字が桁。

リストの理解に関する詳細は this をご覧ください。

7
ninesalt