2016-09-19 9 views

答えて

4
for condition, string in zip(index_list, [str_a, str_b, str_c]): 
    if condition: 
     print string 

質問がzipは、タプルの新しいリストを作成し、としてタグ付けされているので。インデックスや文字列のリストが多い場合は、itertools.izipを使用するか、python 3にアップグレードすることを検討してください。

This answerは、このパターンに対して正確な標準のlib関数を提供しています。

+0

感謝を!すべてうまく動作し、明確にコード化します。 –

+0

その文字列をどのようにリストに変換できますか?例えば: 'string [0] = a、string [1] = c ... with .split()'分割できない –

+0

どういう意味なのか分かりません。どのように分割があなたのために働いていないのですか?フィルタリングされた文字列のリストを作成することはできませんか? –

2
>>> a = [str_a,str_b,str_c] 
>>> b= [0,0,1] 
>>> ','.join(i for i,j in zip(a,b) if j) 
'str_c' 
7

ここは優雅なやり方です。 itertoolsに圧縮機能を使用します。

import itertools as it 
l1 = [1, 0, 1] 
l2 = ["a", "b", "c"] 
for item in it.compress(l2, l1): 
    print item 

出力:

=================== RESTART: C:/Users/Joe/Desktop/stack.py =================== 
a 
c 
>>> 
+1

...どうすれば忘れることができますか... –

+1

優秀です。これを完全に逃した。 –

+3

これはitertools.compressが正確にこれを行うための正しい方法です。 – thiruvenkadam

関連する問題