Python 函数返回一个新列表,其中包含回文且长度为偶数的字符串

问题描述 投票:0回答:1

练习题:

给定一个字符串列表,编写一个 Python 函数来返回一个新列表,其中包含回文且长度为偶数的字符串。

例如:

输入:

["radar", "level", "python", "noon", "racecar"]

输出:
["noon", "racecar"]

编写一个名为

even_length_palindromes
的函数,它将字符串列表作为输入,并返回一个仅包含偶数长度的回文字符串的新列表。

def is_palindrome(string):
    if(string==string[::-1]):
        return(string)
    return()    
def even_length_palindromes(string):
    return(sample for sample in string if len(is_palindrome(sample))%2==0) 

print(list(even_length_palindromes(["radar", "level", "python", "noon", "racecar"])))

生成的 qutput 是

['python', 'noon']
替换为
['noon']

python list list-comprehension
1个回答
0
投票

is_palindrome()
返回一个布尔值,顾名思义。然后分别测试长度是否均匀。

您还需要在

even_length_palindromes()
中使用列表理解,因为描述说它应该返回一个列表,而不是生成器。

def is_palindrome(string):
    return string == string[::-1]

def even_length_palindromes(string_list):
    return [sample for sample in string_list if len(sample) % 2 == 0 and is_palindrome(sample)]
© www.soinside.com 2019 - 2024. All rights reserved.