2016-04-15 15 views

回答

0

相當簡單問題被張貼作爲一個問題;這裏是解決方案。如果你可以在問這裏之前嘗試一下,將不勝感激。

代碼:

a = [True, True, True, False, True, False, True] 
b = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 
res = [] 
for x in range(len(a)): 
    if a[x]==True: 
     res.append(b[x]) 
print res 

輸出:

['A', 'B', 'C', 'E', 'G'] 
0

我希望這個工程的蟒蛇2爲好;我這臺電腦上只有3個,但仍:

a = [ True, True, True, False, True, False, True ] 
b = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 
ab = [] 

for i, j in enumerate(a): 
    if j == True: 
     ab.append(b[i]) 
# in python 3 this was print(ab) :) I ported :) 
print ab 
2

您可以使用itertools.compress(...)

import itertools 
a = [ True, True, True, False, True, False, True ] 
b = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 

ab = itertools.compress(b, a) 
print(list(ba)) 
0

如果您不希望導入itertools,與zip內置功能簡單的列表理解會足夠。

conditions = [True, True, True, False, True, False, True] 
objects = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] 
result = [o for o, c in zip(objects, conditions) if c] 
assert result == ['A', 'B', 'C', 'E', 'G']