1

を使用することができる(そして、より重要なことには、実用的な)か?は辞書理解として以下のコードを記述するために、次のコードを凝縮、好ましくは辞書理解

私はここで辞書を作成し、(で表さ「 - 」)「空白」の値をチェックしていますし、別の文字列値に置き換えます。

test_dict = dict(zip(list_one,list_two)) 
for k,v in test_dict.items(): 
    if v == '-': 
     test_dict[k] = 'missing' 

答えて

2

なぜ辞書を作成するときに置き換えを行いませんか?あなたは本当に何もありませんインプレース既存辞書を変更したい場合は

{k: 'missing' if v == '-' else v for k, v in d.items()} 

:既存の辞書を持っている場合は、新しい一つを使用して作成することができます

test_dict = dict(zip(list_one, 
        ('missing' if x == '-' else x for x in list_two))) 

あるいは、既存のコードに間違いがあります。

[d.__setitem__(k, 'missing') for k, v in d.items() if v == '-'] 

などのリストの理解度を使用できますが、それはむしろ醜いです。

+0

それだけで醜いではない、そこにあなたが最終的に巨大な可能メモリ内completly無用リストを構築し、理解に可変性で遊んでいます。 – Netwave

+0

@ダニエル・サンチェス明らかに...私が言ったように、醜い。私は最初の提案が好き – donkopotamus

+0

本当にありがとうございました@donkopotamus(サイズはこれが均等に醜い '任意の(...)'それを避けるために、それに巻き付けて行うことができる、本当に問題ではありません)。 –

関連する問題