-2

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

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

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

输出:

Eleanor

Evelyn

Gavin

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

不打印任何东西。

4

3 回答 3

2

根据确切的问题定义,您可能正在寻找类似的东西:

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 字符。

于 2013-01-24T18:47:50.333 回答
0

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

重新进口
球员= ['埃莉诺','伊夫林','萨米','欧文','加文']
am_players = filter(lambda p: re.match('^[AM].*',p,re.I), 玩家)
nz_players = filter(lambda p: re.match('^[NZ].*',p,re.I), 球员)
于 2013-01-24T18:50:05.507 回答
0

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

这就是导致您的输出为空的原因。

于 2013-01-24T18:50:27.577 回答