2016-07-04 4 views
-5

これを1行に書き込む方法がありますか?'else else pass'の場合​​、 'do_this()'のpythonic方法は何ですか?

>> list.append(elem) if condition else pass 

私は時々このようなものが必要でしたし、それを達成するための最善の方法はわかりません。

+0

https://codereview.stackexchange.comの方が適していますか? –

+0

これは、** A)**コードが動作し、**およびB)**コードが仮説​​でもなく不完全でもないと仮定して、Code Reviewのトピックになる可能性があります。 – Quill

+0

' else'条件か 'if'条件のためのものか? – Cosinux

答えて

5

ifステートメントは、文を条件付きで実行するためのものです。

if condition: 
    list.append(elem) 

あなた本当にが1行にすべてを望んでいた場合、私はあなたができるとします

if condition: list.append(elem) 

しかし、これは間違いなく非常に読みにくくし、慣用でしょう!あなたの第二の例については


(更新:それは問題外に編集された):

(list1 if condition else list2).append(elem) 
あなたに

list.append(elem) if condition else other_list.append(elem) 

を短縮することができますので、Pythonは、あなたがどこにも三元表現を使用することができます

しかし、上記を2つのステートメントに分割すると、より読みやすくなります。つまり、より慣用的です。

lucky_list = list1 if condition else list2 
lucky_list.append(elem) 
+0

私は悪い例とそれが混乱していた疑問を書いたので、質問を更新しました。 –

+2

@LuisGonzálezあなたはそれを1行に収めることができますが、それは読みにくく、したがって慣用的ではありません。それに応じて更新された回答。 –

+0

私は一行にアプローチする方が読みやすくなったとはいえ、私は今のところそれを考慮に入れます –

2
if condition: 
    list.append(elem) 
else: 
    other_list.append(elem) 

他の方法もありますが、これは最もPythonicです。

+0

私は悪い例とそれが混乱していた疑問を書いたので、質問を更新しました。ありがとう –

+0

私は 'if'ステートメントの使用をお勧めします。可読性を犠牲にしてコンパクト化を試みる必要性も、価値もありません。 –

関連する問題