我需要从城市列表中删除不超过5个字符的城市名称:
下面的代码可以工作,但我觉得代码太长了,应该有另一个方法可以用来缩短代码的长度。
cities = ["New York", "Shanghai", "Munich", "Tokyo", "Dubai", "Mexico
City", "São Paulo", "Hyderabad"]
count = 0
loop = 0
print("City List:",cities)
for x in range(len(cities)):
if len(cities[x]) <= 5:
cities[x] = 'small'
for x in range(len(cities)):
if cities[x] == 'small':
count += 1
while loop < count:
for x in cities:
if x == 'small':
cities.remove(x)
loop += 1
print("Filtered:",cities)发布于 2018-06-09 17:34:48
最短的方法是列表理解。
cities = [city for city in cityes if len(city) < 6]这等同于
cities_filterd = []
for city in cities:
if len(city) < 6:
cities_filterd.append(city)然后,cities_filterd将包含长度小于6的citiey。
发布于 2018-06-09 17:33:50
您可以使用filter:
filtered_cities = list(filter(lambda x: len(x) > 5, cities)https://stackoverflow.com/questions/50772799
复制相似问题