2017-06-22 11 views
-3

任意の方法で変数を返す方法はありますか?どれを使用せずにPythonで "any"を使って変数を返しますか?

:任意(句読点が初期化されていないため、取得エラー)で

for punctuation in punctuations_list: 
    if punctuation in utterance: 
     print (punctuation) 

if any(punctuation in utterance for punctuation in punctuations_list): 
    print (punctuation) 

答えて

3

いいえ、any()だけTrueまたはFalseを生成します。一致する要素が必要な場合は、代わりにany()を使用しないでください(あなたのforループの場合のように)。

あなたはフィルタリングを行うために最初のリストの内包表記を使用することができます。

matching = [p for p in puntuations_list if p in utterance] 
if matching: 
    # print all matching punctuation on separate lines 
    print(*matching, sep='\n') 

またはあなただけの最初一致する要素が必要な場合は、next() functionとジェネレータ式を使用:

matching = next((p for p in puntuations_list if p in utterance), None) 
if matching is not None: 
    print(matching) 

をジェネレータ式が値を生成しない場合は、next()の2番目の引数が返されます。だからここでNone信号に一致する句読点がなかったので(any()Falseを返すだろう)。

+0

や '次を(必要ならば、彼らはちょうど最初に出現した –

+1

@Chris_Randsをしたい場合は、[いいえ、any()のみ')、偽のTrueを返すことができます:それは彼らのように期待するもの私にははっきりしていません出力;私はオプションを追加しました。 –

2

あなたは、変数を使用filter()

関連する問題