2017-12-23 20 views
1

一時的な名前を使用する代わりに内容を変更する場合、関数内で同じ変数名を繰り返し使用するのがPythonicかどうか疑問に思っていました。python変数名の使用

例:

NAMES = ['abc def', 'ghi jkl', 'ghi jkl'] 

def clean_names(names): 
    names = [name.title() for name in names] # Put upper case for first letters 
    names = list(set(names)) # Remove duplicates 
    return names 

出力:それは、なぜない従って、コードをより簡単になら

['Ghi Jkl', 'Abc Def'] 

私の気持ちです!

+0

シャドーイングを避けたい。すなわち 'clean_names'の中に' NAMES'を使用しています。それがパラメータとして渡されない限り。 – Skam

+8

リスト内包に '名前 'を使用すると、' names'パラメータの意味は何ですか? – Barmar

+0

変数に(ほとんどの)名前を付けて、値を再利用して自由に変更できます。 @Barmarで指摘したように、パラメータの使用を見てください。 –

答えて

1

それはあなたのデータセットを変更している場合は、しかし、あなたのケースであなたはちょうどあなたが変数を再割り当て第二行を削除することもできますし、ちょうど

returnステートメントを使用して再使用し、変数名に非Python的ではありません
NAMES = ['abc def', 'ghi jkl', 'ghi jkl'] 

def clean_names(list_of_names): 
    names = [name.title() for name in list_of_names] 
    return list(set(names)) # Return a list without duplicates 
+1

私は 'clean_names()'メソッドに渡されるものと仮定していますが、 'abc def'には '.title()'が含まれていません) – AK47

+0

彼は私たちのためにこれをクリアしてくれることを願っています。 – AK47

+0

あなたはコースを離れています。私の質問はスタイルに関するものでした。私はしばしば、コードをより読みやすくするための関数に与えられたデータセットに対する複数の変更のために同じ名前を使用します:変更ごとに1行。ありがとう – denys

関連する問題