首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的过滤器列表项

Python中的过滤器列表项
EN

Stack Overflow用户
提问于 2018-06-09 17:28:14
回答 2查看 124关注 0票数 0

我需要从城市列表中删除不超过5个字符的城市名称:

下面的代码可以工作,但我觉得代码太长了,应该有另一个方法可以用来缩短代码的长度。

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2018-06-09 17:34:48

最短的方法是列表理解。

代码语言:javascript
复制
cities = [city for city in cityes if len(city) < 6]

这等同于

代码语言:javascript
复制
cities_filterd = []
for city in cities:
    if len(city) < 6:
        cities_filterd.append(city)

然后,cities_filterd将包含长度小于6的citiey。

票数 1
EN

Stack Overflow用户

发布于 2018-06-09 17:33:50

您可以使用filter:

代码语言:javascript
复制
filtered_cities = list(filter(lambda x: len(x) > 5, cities)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50772799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档