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

Only print strings starting with a given letter / Python

使用 .sort()

按字母顺序从 visited_cities 列表中打印引用

仅打印名称以 "Q" 或更早(即 a 到 q)开头的城市

visited_cities = ["New York", "Shanghai", "Munich", "Toyko", "Dubai", "Mexico City", "São Paulo", "Hyderabad"]

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

您可以使用正则表达式和过滤来做到这一点:

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

正则表达式变量查找从 [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 到 Q 你必须确保他们的 Unicode 代码点在 65 和 81

之间