List 检查字符串中的字符并输出单个消息

List 检查字符串中的字符并输出单个消息,list,python-3.x,iteration,List,Python 3.x,Iteration,输出: 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) 是否有一种方法可以迭代“a_lst”中的每个项目,检查每个项目是否有字母“x”。如果没有项目包含字母“x”,则只打印一次“no x”。如果单词包含

输出:

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)   
是否有一种方法可以迭代“a_lst”中的每个项目,检查每个项目是否有字母“x”。如果没有项目包含字母“x”,则只打印一次“no x”。如果单词包含字母“x”,请只打印一次“是x”

我认为我的逻辑有缺陷

有什么建议吗

谢谢

您可以这样做:

no x
no x
no x
no x
解释
如果
a_lst
中的任何单词都没有字母,则
结果将为
[]
。在空列表上执行
if结果
时,它返回
False
,否则返回
True
。条件语句相应地检查并打印输出语句

在python中执行此操作的另一种方法是使用
filter
函数:

letter = 'x'
result = [a for a in a_lst if letter in a]
if result:
    print('yes', letter)
else:
    print('no', letter)
另一种方法是使用
any

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

any(列表中逐字逐句的字母)
如果任何单词包含字母,则返回True。

您是否尝试过类似的操作:

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

您可以使用
任何
功能

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)
if any(letter in word for word in a_lst):
    print('yes', letter)
else:
    print('no', letter)