如何用Python在字符串列表中查找字母

2024-09-29 07:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有更简短的方法来编写这个代码?你知道吗

lst = ['Ellie', 'Steve', 'Sam', 'Owen', 'Gavin']
for name in lst:
    if 'A' in name:
        print(name)
    if 'B' in name:
        print(name)
    if 'C' in name:
        print(name)
    if 'D' in name:
        print(name)
    if 'E' in name:
        print(name)
    if 'F' in name:
        print(name)
    if 'G' in name:
        print(name)
    if 'H' in name:
        print(name)
    if 'I' in name:
        print(name)
    if 'J' in name:
        print(name)
    if 'K' in name:
        print(name)
    if 'L' in name:
        print(name)
    if 'M' in name:
        print(name)

基本上,我要做的是打印出列表中每个以字母A到m开头的名字


Tags: 方法代码namein列表forifsam
3条回答

如果要检查初始字符是否在A-M中,则可以使用简单的If语句:

if name[0] in "ABCDEFGHIJKLM":
    print(name)
lst = ["Jonny","Samantha","Frank","Turtle","Robbie","Samuel Jackson"]
print "\n".join(filter(set("ABCDEFGHIJKLM").intersection,lst))

这是一种方法

import functools
lst = ["Jonny","Samantha","Frank","Turtle","Robbie","Samuel Jackson"]
print "\n".join(filter(functools.partial(re.match,"[A-M]"),lst))

是另一种确保其唯一的第一个字母匹配的方法

使用非常简单的正则表达式:

import re
lst = ['Ellie', 'Steve', 'Sam', 'Owen', 'Gavin']
for name in lst:
  if re.search('^[A-M]', name):
    print(name)

另外,请注意,您的代码并没有按预期工作,因为它将接受任何位置的字母,而不仅仅是第一个位置。你知道吗

相关问题 更多 >