2016-03-24 9 views
0

を評価します。二つのリストと、Pythonのリスト内包:私はそれはそれは<code>existing_list</code>と同じである必要があり、他の空ではない場合<code>input_list</code>に等しくなり、新しいリストを作成したい</p> <pre><code>input_list = ['a','b'] existing_list = ['q','w','r'] </code></pre> <p>:私は二つのリストを持っているリスト

これを行う最も簡単な方法は、使用することです平野if-else

if input_list: 
    list_to_use = input_list 
else: 
    list_to_use = existing_list 

それはリストの内包またはより簡潔である他の任意の方法でこれを行うことは可能ですか?

list_to_use = [x if input_list else y for y in existing_list for x in input_list] 

私が得ることができる最も近い['a', 'b', 'a', 'b', 'a', 'b']、間違った結果を生成する、この1です。

+0

受け入れていただきありがとうございますが、私はそれを代わりに使用して書いています。あなたが確かに使用しなければならないものは、 '(または'を使って)アップアップされた答えです。 – Lafexlos

+0

@Lafexlos、そうです。読者のためにもっと直感的なようです。 –

答えて

3

、(これを行うには方法でなければなりません)Kasramvdによって提案され、あなたもternary operatorを使用することができます:それはor操作はまったく同じものです。

list_to_use = input_list if input_list else existing_list 
5

あなたはリスト内包は必要ありません。

or以外
>>> input_list or existing_list 
['a', 'b'] 
>>> input_list = [] 
>>> 
>>> input_list or existing_list 
['q', 'w', 'r'] 
+2

「Keep It Simple&Stupid」.. :) –

関連する問題

 関連する問題