Python 函数,它获取字符串列表并返回另一个特定列表

Python 函数,它获取字符串列表并返回另一个特定列表,python,list,Python,List,我需要创建一个函数,该函数接受一个单词列表,然后检查该列表中的所有字符串,并返回另一个字符串列表,其中字符串的第一个和最后一个字符相同 例如,给定的input\u list=['a','aa','aba','abb']输出应该是['aa','aba']尝试以下操作: def myfunc(lst): return [item for item in lst if len(item) > 1 and item[0] == item[-1]] 只需检查长度是否大于1,并查看第一个

我需要创建一个函数,该函数接受一个单词列表,然后检查该列表中的所有字符串,并返回另一个字符串列表,其中字符串的第一个和最后一个字符相同

例如,给定的
input\u list=['a','aa','aba','abb']
输出应该是
['aa','aba']

尝试以下操作:

def myfunc(lst):
     return [item for item in lst if len(item) > 1 and item[0] == item[-1]]


只需检查长度是否大于1,并查看第一个字符
x[0]
是否等于最后一个字符
x[-1]

print(list(filter(lambda x: len(x) > 1 and x[0] == x[-1], lst)))
['aa', 'aba']
或者,如果您想要一个函数:

f = lambda l:list(filter(lambda x: len(x) > 1 and x[0] == x[-1], l))

print(f(lst))

实现这一点的方法通常是过滤列表,而不是将其视为不同的列表,并定义任何函数(正则或lambda)来表示需要过滤的内容。这样,您的代码就变得清晰,易于测试和维护:

filteredList = filter(lambda x: len(x) > 1 and x[0] == x[-1], myList)

#or:
def starts_and_ends_with_same_char(subject):
    return len(subject) > 1 and str[0] == subject[-1]

filteredList = filter(starts_and_ends_with_same_char, myList)
打一点高尔夫球:

>>> [s for s in lst if s[1:] and s[0] == s[-1]]
['aa', 'aba']

您的示例输出不正确,它应该包含
'a'
@StefanPochmann不一定,可能OP不想要
len
@user1823的字符串,那么他需要将其包含在规范中。那么问题是什么?试试看。@StefanPochmann抱歉,我忘了提到长度也应该超过1个字符这是我想要的
>>> [s for s in lst if s[1:] and s[0] == s[-1]]
['aa', 'aba']