我有一个单词列表如下:
apple
grapes
pappu
pop
seeds
我想识别并显示以字符u
和p
结尾的所有字词。
预期产出如下:
pappu
pop
我的代码不正确:
p = [w for w in theWord if re.search('(u|p)$', w)]
print p
答案 0 :(得分:4)
使用str.endswith
,此处不需要regex
。
p = [w for w in theWord if w.endswith(('p','u'))]
演示:
>>> theWord = ['apple', 'grapes', 'pappu', 'pop', 'seeds']
>>> p = [w for w in theWord if w.endswith(('p','u'))]
for w in p:
print w
...
pappu
pop
BTW您的代码没问题,您只需要一个for循环来获得预期的输出:
>>> p = [w for w in theWord if re.search('(u|p)$', w)]
>>> for w in p:
... print w
...
pappu
pop
答案 1 :(得分:1)
你可以这样做:
words = ['apple','grapes','pappu','pop','seeds','']
for word in words:
if word[-1:] == 'p' or word[-1:]== 'u':
print word
并索引每个单词的最后一个字母,如果它们与staement匹配,那么对它们做任何事情
答案 2 :(得分:0)
您始终可以使用切片,反向索引:
>>> theWord = ['apple', 'grapes', 'pappu', 'pop', 'seeds']
>>> [w for w in theWord if w[-1].lower() in ['p', 'u']]
['pappu', 'pop']
>>>
N.B。仅当您希望获得以P和U结尾的单词时才需要.lower()