仅打印以给定字母开头的字符串/ Python

时间:2020-03-05 05:27:57

标签: startswith

使用.sort()按字母顺序打印Visited_cities列表中的引用

仅打印名称以“ Q”或更早(意思是a到q)开头的城市

visited_cities = [“纽约”,“上海”,“慕尼黑”,“玩具”,“迪拜”,“墨西哥城”,“圣保罗”,“海得拉巴”]

.sort()很容易做到,但是我不知道如何找出问题的第二部分。

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式和类似的过滤器来做到这一点

import re
regex=re.compile('[A-Q]{1}.*')
cities = list(filter(lambda city: re.match(regex, city), visited_cities))
print(*cities, sep='\n')

regex变量查找从[A-Q]开始的任何城市

利用字符的Unicode代码点甚至有一个更简单的解决方案。看一下方法ord

for city in visited_cities:
     first_character = city[0]
     if ord(first_character) >= ord('A') and ord(first_character) <= ord('Q'):
             print(city)

对Unicode代码点进行了排序,因此A在65处,B在66处... Q在81处,Z在90处。因此,如果您只想打印以A到A开头的城市问:您必须确保其Unicode代码点在65到81之间

相关问题