Python 如何从给定的字符串列表中获取列表中存在的字符串?

Python 如何从给定的字符串列表中获取列表中存在的字符串?,python,python-3.x,list,Python,Python 3.x,List,因此,我有3种可能的列表: list_a=['DU','CARTE','AN','NM','DAN','DATE','161','EUL','DATE','Latte','ZEBRA','M'] 列表b=['DU','CARTE','AN','NM','DAN','DATE','161','EUL','DATE','Latte','ZEBRA','F'] 列表c=['DU','CARTE','AN','NM','DAN','DATE','161','EUL','DATE','Latte','ZE

因此,我有3种可能的列表:

list_a=['DU','CARTE','AN','NM','DAN','DATE','161','EUL','DATE','Latte','ZEBRA','M']
列表b=['DU','CARTE','AN','NM','DAN','DATE','161','EUL','DATE','Latte','ZEBRA','F']
列表c=['DU','CARTE','AN','NM','DAN','DATE','161','EUL','DATE','Latte','ZEBRA']
i、 e.列表将包含一个“M”和一个“F”,或者不包含这两个。此外,如果它包含“M”,它将不包含“F”,反之亦然!(它们可以位于列表中的任何索引位置)

我必须弄清楚,列表中是否包含“M”或“F”?如果是,我希望它分配/返回它包含的内容-'M'、'F'或None

目前我正在做:

范围内i的
(len(给定列表)):
如果给定的_列表[i]=“M”或给定的_列表[i]=“F”:
答案=给定的列表[i]
打破

我觉得这可以用一种更好的方式来完成。有人能帮我吗?

您可以使用带有生成器表达式的
next
,该表达式通过测试项目是否为所需值之一来过滤列表,如果未找到,则默认为
None

next((i for i in given_list if i in ('M', 'F')), None)

如果你确实想在列表上迭代,那么使用
列表理解

answer = [given_list[i] for i in range(len(given_list)) if given_list[i] == "M" or given_list[i] == "F"]
   
if answer == []:
    answer = None

print(answer)

如果它总是以这些字符中的一个结尾,那么您可以只检查
给定的列表[-1]
。不需要在列表索引上循环。只要
如果lst中的'M'或lst中的'F':
不,就像我提到的,
它们可以位于列表中的任何索引位置
使用
in
查找列表中是否存在元素<代码>如果给定列表中的“M”等,您可以使用列表理解,就像
[如果项目==“F”或项目==“M”,则给定列表中的项目对应项目]
,然后选中-如果列表为空,则返回
,否则返回列表中的唯一元素。它将以一种更奇特的pythonic方式只迭代一次,顺便说一句,它比在列表上的常规循环快得多。