筛选Python中的列表项

2024-04-25 05:03:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从城市列表中删除不超过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)

Tags: 代码in名称loopcity列表forlen
2条回答

最短的方法是列出一份清单

cities = [city for city in cityes if len(city) < 6]

这与

cities_filterd = []
for city in cities:
    if len(city) < 6:
        cities_filterd.append(city)

城市过滤器将包含长度小于6的城市。你知道吗

您可以使用过滤器:

filtered_cities = list(filter(lambda x: len(x) > 5, cities)

相关问题 更多 >