Python 打印列表中以特定字符开头的字符串
目前,我有:Python 打印列表中以特定字符开头的字符串,python,string,list,character,selection,Python,String,List,Character,Selection,目前,我有: lst = ['Eleanor', 'Sammy', 'Owen', 'Gavin'] def partition(lst): if any('abcdefghijklm') in ([x[0] for x in lst]): print(lst) else: print('This still isn\'t working') 我试图检查lst中每个字符串的第一个字符,并且只打印lst中以任意字母A-M开头的字符串。我似乎找不到
lst = ['Eleanor', 'Sammy', 'Owen', 'Gavin']
def partition(lst):
if any('abcdefghijklm') in ([x[0] for x in lst]):
print(lst)
else:
print('This still isn\'t working')
我试图检查lst中每个字符串的第一个字符,并且只打印lst中以任意字母A-M开头的字符串。我似乎找不到任何支持这一点的方法。有没有我忽略的本地方法?简单明了的方法如何:
lst = ['Eleanor', 'Sammy', 'Owen', 'Gavin']
whitelist = set('abcdefghijklm')
for name in lst:
if name[0].lower() in whitelist:
print(name)
def partition(lst):
print([ x for x in lst if x[0].lower() in 'abcdefghijklm' ])
或者非常清楚的是:
def partition(lst):
for word in lst:
if word[0] in 'abcdefghijklm':
print(word)
你误解了
任何的功能。如果馈送给它的iterable的任何成员为True,则返回True:print(any([False,[],0,None,[a']))#输出True
相反,all
仅当传递给它的iterable的每个成员为True时返回True
但是,它是一个功能强大的工具,您可以使用它执行此任务:
from string import ascii_lowercase as lowercase #a-z
def partition(*names):
if any(n[0].lower() in lowercase[:13] for n in names):
print(*names)
else:
print("No names matched the criteria")
partition('Eleanor', 'Sammy', 'Owen', 'Gavin')
迭代列表(for
loop)并检查A