1

我有一个单词列表如下:

apple
grapes
pappu
pop
seeds

我想识别并显示所有以字符u和结尾的单词p。预期输出如下:

pappu
pop

我的代码不正确:

p = [w for w in theWord if re.search('(u|p)$', w)]
print p
4

3 回答 3

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

顺便说一句,您的代码没问题,您只需要一个 for 循环即可获得预期的输出:

>>> p = [w for w in theWord if re.search('(u|p)$', w)]
>>> for w in p:
...     print w
...     
pappu
pop
于 2013-07-28T06:20:54.230 回答
1

你可以这样做:

words = ['apple','grapes','pappu','pop','seeds','']

for word in words:
    if word[-1:] == 'p' or word[-1:]== 'u':
         print word

并索引每个单词的最后一个字母,如果它们匹配 staement 然后对它们做任何事情

于 2013-07-28T06:24:18.647 回答
0

您始终可以使用切片、反向索引:

>>> theWord = ['apple', 'grapes', 'pappu', 'pop', 'seeds']
>>> [w for w in theWord if w[-1].lower() in ['p', 'u']]
['pappu', 'pop']
>>> 

NB.lower()仅当您想获得以 P 和 U 结尾的单词时才需要

于 2013-07-28T06:29:15.860 回答