使用Python将列表拆分为两个?

2024-09-29 07:20:15 发布

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

我刚刚开始学习编程,在使用Python的家庭作业中,我收到了以下问题。我想知道是否有人能帮我解释一下我需要做些什么

实现函数partition(),将足球运动员列表分成两组。更准确地说,它以名字(字符串)列表作为输入,并打印出那些名字以字母a和M开头的足球运动员的名字

partition([‘Eleanor’, ‘Evelyn’, ‘Sammy’, ‘Owen’, ‘Gavin’])

输出:

^{pr2}$

以及

partition([‘Xena’, ‘Sammy’, ‘Owen’])

不会打印任何内容。在


Tags: 函数字符串列表编程字母名字partition家庭作业
3条回答

如果您的分区函数只打印从'A'到'M'以字母开头的名称,partition(['Xena', 'Sammy', 'Owen'])将不打印任何内容。在

这就是为什么你的输出是空的。在

根据具体的问题定义,您可能会寻找以下内容:

def partition(l):
    return [firstname for firstname in l
            if firstname[0].lower() in 'abcdefghijklm']

def partition2(l):
    return [firstname for firstname in l
            if 'a' <= ord(firstname[0].lower())
               and ord(firstname[0].lower()) <= 'm']

请注意,这些字符仅严格匹配“A”和“M”之间的ASCII字符。在

在这种情况下,我不会使用分区。 尝试以下操作:

import re
players = ['Eleanor', 'Evelyn', 'Sammy', 'Owen', 'Gavin']
am_players = filter(lambda p: re.match('^[A-M].*',p,re.I), players)
nz_players = filter(lambda p: re.match('^[N-Z].*',p,re.I), players)

相关问题 更多 >