我需要创建一个获取单词列表的函数,然后我想检查该列表中的所有字符串并返回另一个字符串列表,其中字符串的第一个和最后一个字符是相同的。
例如,给定 /**
* @var array
*
* @ORM\OneToMany(targetEntity="OrderRow", mappedBy="order", cascade={"persist"})
*/
private $orderRows;
输出应为input_list = ['a','aa','aba','abb']
。
答案 0 :(得分:4)
尝试以下方法:
def myfunc(lst):
return [item for item in lst if len(item) > 1 and item[0] == item[-1]]
>>> myfunc(['a','aa','aba','abb'])
['aa', 'aba']
>>>
答案 1 :(得分:1)
解决这个问题的方法通常是过滤列表,而不是将其视为不同的列表,并定义任何函数(常规函数或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)
答案 2 :(得分:0)
稍微打高尔夫球:
>>> [s for s in lst if s[1:] and s[0] == s[-1]]
['aa', 'aba']