在python中使用'in'时如何检查字符串后没有字符

时间:2018-10-22 15:41:56

标签: python string countries

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

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

现在这会打印列表中的两个值,我如何才能使其仅打印第一个值?

3 个答案:

答案 0 :(得分:2)

您可以使用方法str.endswith

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

请注意如何直接在locations上进行迭代而不必引用列表索引。

我鼓励您观看this video,以学习Python中的惯用迭代。

答案 1 :(得分:0)

或者快速列表理解:

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

如果您有多个字符串,则将获得所有以'uk'结尾的字符串的列表。

答案 2 :(得分:0)

使用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)]