列表中包含相同的第一个和最后一个字符的单词

时间:2018-02-23 04:25:49

标签: python python-3.x python-2.7

我正在尝试使用Python选择下面列表中包含相同的第一个和最后一个字符的单词:

我知道我需要使用random_strings,但我不知道如何。

['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence']

我正在寻找这个结果:

['xerox', 'trust', 'blurb', 'yummy', 'evidence']

由于

4 个答案:

答案 0 :(得分:5)

>>> words = ['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence']
>>> [w for w in words if w[0] == w[-1]]
['xerox', 'trust', 'blurb', 'yummy', 'evidence']

答案 1 :(得分:3)

另一种可能性是在Python3中使用解包:

s = ['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence'] 
final_words = [''.join([a, *b, c]) for a, *b, c in s if a == c]

输出:

['xerox', 'trust', 'blurb', 'yummy', 'evidence']

答案 2 :(得分:1)

试试这段代码!

我还附上了代码输出的截图。

list = ['xerox', 'trust', 'follow', 'blurb', 'maroon', 'ready', 'salad', 'yummy', 'evidence']
for i in range(0,len(list)):
  if list[i][:1]==list[i][-1:]:
    print(list[I])

enter image description here

答案 3 :(得分:1)

我建议你过滤掉endswith第一个字符的单词。

words = ['xerox', 'trust', 'follow', 'blurb', 'maroon',
         'ready', 'salad', 'yummy', 'evidence']

result = [w for w in words if w.endswith(w[:1])]

这有一个特殊的行为,它甚至可以在空字符串上工作。