python - 我想计算列表中单个单词中的字母并删除 3 个字母以下的单词
问题描述
我有一个单词列表,我试图将其分解为一个字符串,然后删除该字符串中小于 3 个字母的任何单词 - 但不确定如何处理该列表是 ["John", "Peter", “A”、“Be”、“Tom”、“June”]
解决方案
有几种方法可以做到这一点。所有 3 种方法都依赖于len()
计算有多少项目。认为:
data = ["John", "Peter", "A", "Be", "Tom", "June"]
1:传统的for循环
遍历列表并将长度超过 3 的单词添加到结果列表中:
results = []
for item in data:
if len(item) >= 3:
results.append(item)
2:列表理解
这是方法 1 的精简版,也是我最喜欢的:
results = [item for item in data if len(item) >= 3]
3:过滤
这是我最不喜欢的,但仍然是一个选择。它使用一个返回 True/False 的函数来检查每个项目:
results = list(filter(lambda x: len(x) >= 3, data))
您也可以在这里使用普通函数而不是 lambda:
def more_than_three(item):
return len(item) >= 3
results = list(filter(more_than_three, data))
推荐阅读
- python - Discord.Py Opus Heroku 问题
- javascript - 将已编译的 sass 写入文件的父目录
- javascript - 从没有类或 id 的锚标记更改 href
- python - 向 Wagtail 页面添加自定义 HTTP 标头
- linux - 使用 awk/sed/bash 检索所有必填字段后打印
- java - 单击ListView中位置的按钮后如何获取文本?
- jsp - struts2 使用 Spring Boot - JSP 未呈现
- python - Keras:使用 tf.data.Dataset 难以为预测准备数据
- java - 即使使用正确的 json 字符串,android 发送 post 请求也总是返回 400
- javascript - CSV的非常大的数组并响应节点中的rest api