2017-10-22 9 views
1
nums = [13, 1, 2, 13, 2, 1, 13] 
index = [1,3] 

unwanted = set() 
for i in index: 
    unwanted.add(nums[i]) 

print(unwanted) 

私は3行のコードを1行にすることはできますか?だから、 、私のpythonに新たなんだと、何を学ぼうとforループを使用して新しいセットを1行で作成する

new = [i for i in nums if i not in unwanted] 

ような何か「私はNUMSに私のために....」ん。ループの典型的には 、私たちは

for i in item_list 
    .... 

を書いて、私たちは「のために」の前に「I」を追加しないでください。私は "私"が "for"の前でやっていることを知りたい。

答えて

1

はい、できます:

あなたの例については
unwanted = set(nums[i] for i in index) 

のpythonについての素晴らしい事の
new = [i for i in nums if i not in unwanted] 

1は、あなたからの文章を読んでいるかのようにあなたがそれを読むことができるということです本:i for i in nums if i not in unwantedは、numsを繰り返すことを意味し、numsの各iについては、それがない場合にのみ収集します。unwanted

関連する問題