首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想要计算列表中单个单词中的字母,并删除3个字母以下的单词

我想要计算列表中单个单词中的字母,并删除3个字母以下的单词
EN

Stack Overflow用户
提问于 2019-01-31 14:17:12
回答 3查看 47关注 0票数 0

我有一个单词列表,我正试着将它们拆成一个字符串,然后删除字符串中少于3个字母的所有单词--但我真的不知道该怎么做。列表中有"John","Peter","A","Be","Tom",“Jun.”

EN

回答 3

Stack Overflow用户

发布于 2019-01-31 15:07:29

有几种方法可以做到这一点。这3种方法都依赖于len()来计算有多少个项目。假设:

代码语言:javascript
复制
data = ["John", "Peter", "A", "Be", "Tom", "June"]

1:传统的for循环

遍历列表并将长度大于3的单词添加到结果列表中:

代码语言:javascript
复制
results = []
for item in data:
    if len(item) >= 3:
        results.append(item)

2:列表理解

这是方法1的精简版本,也是我最喜欢的:

代码语言:javascript
复制
results = [item for item in data if len(item) >= 3]

3:过滤器

这是我最不喜欢的,但仍然是一个选择。它使用一个返回True/False的函数来检查每一项:

代码语言:javascript
复制
results = list(filter(lambda x: len(x) >= 3, data))

您也可以在这里使用普通函数而不是lambda:

代码语言:javascript
复制
def more_than_three(item):
    return len(item) >= 3

results = list(filter(more_than_three, data))
票数 2
EN

Stack Overflow用户

发布于 2019-01-31 14:48:20

示例代码:

代码语言:javascript
复制
Sample_List = ["John", "Peter", "A", "Be", "Tom", "June"]
Sample_List = [x for x in Sample_List if len(str(x)) > 3]
print(Sample_List)

输出:

代码语言:javascript
复制
['John', 'Peter', 'June']
票数 0
EN

Stack Overflow用户

发布于 2019-01-31 18:21:00

代码语言:javascript
复制
a=["John", "Peter", "A", "Be", "Tom", "June"]
for x in a:
    if len(x)<3:
        a.remove(x)
        print(a)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54454457

复制
相关文章

相似问题

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