Как проверить, что после строки «in» в Python нет символа после строки - PullRequest
0 голосов
/ 22 октября 2018
locations=['london, uk','kiev, ukraine']

for i in range(len(locations)):
    if ', uk' in locations[i]:
        print(locations[i])

прямо сейчас это печатает оба значения в списке, как я могу сделать так, чтобы оно печатало только первое?

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Или быстрое понимание списка:

[i for i in locations if i.endswith('uk')]

Если у вас есть несколько строк, вы получите список всех строк, который заканчивается на 'uk'.

0 голосов
/ 22 октября 2018

Чтобы дать больше опций, используйте regex.endswith также можно просто проверить строку с концами подстрокой ', uk'.

import re
locations=['london, uk','kiev, ukraine']

for i in range(len(locations)):
    if re.search(', uk$',locations[i]):
        print(locations[i])

Или список понимания

[i for i in locations if re.search(', uk$',i)]  
0 голосов
/ 22 октября 2018

Вы можете использовать метод str.endswith.

>>> locations=['london, uk','kiev, ukraine']
>>>   
>>> for loc in locations:
...     if loc.endswith(', uk'):
...         print(loc)
... 
london, uk

Обратите внимание, как вы можете выполнять итерацию по locations напрямую, не обращаясь к индексам списка.

Я советую вам посмотреть это видео для изучения идиоматической итерации в Python.

...