获取字符串列表中的最后3个字母

2024-05-18 07:33:16 发布

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

例如:

def get_last_three_letters(a_list):
    for name in a_list:
        name = name[-3:].lower()

    return name

def main():
   print("1.", get_last_three_letters(["Jess", "Cain", "Amity", "Raeann"]))
   print("2.", get_last_three_letters(["CAIn", "JessiE", "O", "ROBERT", 
   "Geoffrey", "Li", "B"]))
   print("3.", "***" + get_last_three_letters([]) + "***")
   print("4.", "***" + get_last_three_letters(["A", "E", "O"]) + "***")

我的输出如下:

^{pr2}$

我试图从字符串中获取最后3个字符,我希望得到如下输出:

 1. essainityann
 2. ainsieertrey

我不知道怎么修。在


Tags: nameinforgetreturnmaindeflower
2条回答

这就足够了:

def get_last_three_chars(my_list):
    return ''.join(x[-3:].lower() for x in my_list if len(x) >= 3)

^{pr2}$

这里的问题是在每次迭代中都要重写names。相反,保留一个列表,并将这些值保留为append,最后str.join并返回。在

def get_last_three_letters(a_list):
    tails = []
    for name in a_list:
        if len(name) > 2:
            tails.append(name[-3:].lower())

    return ''.join(tails)

{a1}你可以把这个列表缩短。在

^{pr2}$

注意,将列表传递给str.join实际上比生成器理解要快!


>>> get_last_three_letters(["Jess", "Cain", "Amity", "Raeann"])
'essainityann'
>>> get_last_three_letters(["CAIn", "JessiE", "O", "ROBERT", "Geoffrey", "Li", "B"])
'ainsieertrey'

相关问题 更多 >