1

次のような単語のリストがあります。

apple
grapes
pappu
pop
seeds

u文字andで終わるすべての単語を識別して表示したいと考えています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

そして、各単語の最後の文字にインデックスを付け、それらがステートメントと一致する場合は、それらで何でもします

于 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']
>>> 

注意.lower()P と U で終わる単語も取得したい場合にのみ必要です。

于 2013-07-28T06:29:15.860 に答える