2014-04-08 36 views
0
a_lst = ['chair','gum','food','pizza'] 
letter = 'x' 
for word in a_lst: 
    if letter not in word: 
    print ('no',letter) 

    elif letter in word: 
    print ('yes',letter) 

輸出:檢查字符串中的charcters和outputing單個消息

no x 
no x 
no x 
no x 

有沒有一種方法,我可以遍歷雖然「a_lst」每個項目,檢查每個項目都有字母「X」。如果沒有項目有字母'x'打印'沒有x'只是一次。如果一個單詞包含字母'x',只需打印'是x'一次。

我覺得我的邏輯在某個地方是有缺陷的。

有什麼建議嗎?

感謝

回答

2

你可以這樣做:

letter = 'x' 
result = [a for a in a_lst if letter in a] 
if result: 
    print('yes', letter) 
else: 
    print('no', letter) 

說明
result[]如果沒有的話在a_lst有信。當您在空列表上執行if result時,它將返回False,否則返回True。條件語句相應地檢查並打印輸出語句。

另一種方式來做到這一點在Python是使用filter功能:

if filter(lambda x: letter in x, a_lst): 
    print('yes', letter) 
else: 
    print('no', letter) 

另一種方式做到這一點是使用any

if any(letter in word for word in a_list): 
    print('yes', letter) 
else: 
    print('no', letter) 

any(letter in word for word in a_list)返回true如果任何字有信。

0

你有沒有嘗試過這樣的事情:

a = ['chair', 'gum', 'food', 'pizza'] 

letter = 'a' 

result = 'no ' + letter 
k = 0 

for i in a: 

    if letter in a[k]: 
     print(a[k]) 
     result = 'yes ' + letter 

    k += 1 

print(result) 
0

可以使用any功能!

if any(letter in word for word in a_lst): 
    print('yes', letter) 
else: 
    print('no', letter)