Мне нужно удалить названия городов 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)






Вы можете использовать фильтр:
filtered_cities = list(filter(lambda x: len(x) > 5, cities)
Самый короткий путь - понимание списка
cities = [city for city in cityes if len(city) < 6]
Это эквивалентно
cities_filterd = []
for city in cities:
if len(city) < 6:
cities_filterd.append(city)
city_filterd будут ли они содержать город с длиной менее 6.
Да, вы правы, понимание списков будет считаться питоническим, чем использование фильтров и лямбда-функций, а понимание списков более легко читается.
Кратчайший? В глазу мой ответ? : D В лучшем случае они похожи, я бы сказал.