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)
输出:
no x
no x
no x
no x
有没有办法可以迭代" a_lst"中的每个项目,检查每个项目是否有字母' x'。如果没有项目有字母' x'打印'没有x'就一次。如果一个单词包含字母' x',则打印'是x'只有一次。
我认为我的逻辑在某处存在缺陷。
有什么建议吗?
由于
答案 0 :(得分: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。
答案 1 :(得分: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)
答案 2 :(得分:0)
您可以使用any
功能!
if any(letter in word for word in a_lst):
print('yes', letter)
else:
print('no', letter)