locations=['london, uk','kiev, ukraine']
for i in range(len(locations)):
if ', uk' in locations[i]:
print(locations[i])
现在这会打印列表中的两个值,我如何才能使其仅打印第一个值?
答案 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)]