python - Python Lambda:长度之间的字符串
问题描述
给定一个字符串列表,在省略长度在 4 到 8(含)之间的任何单词后打印该列表。
我试过这段代码:
Question = filter(lambda x: len(x) <= 4 and len(x) >= 8, strs)
print (list(Question))
但它返回了这个:
[]
关于如何在不创建两种不同过滤方法的情况下执行此操作的任何想法?
解决方案
filter
将根据谓词保留元素,而不是删除它们。如果要删除长度为 4 到 8 的元素,则应过滤反向条件:
>>> strs = ['black', 'blue', 'green', 'purple', 'yellow', 'test_samples', 'sample_data']
>>> Question = filter(lambda x: len(x)> 8 or len(x) < 4, strs)
>>> list(Question)
['test_samples', 'sample_data']
推荐阅读
- r - 通过躲避在R中的ggplot中绘制年度/面积比较
- javascript - 应用程序函数从 React Native 中的异步操作中不返回任何内容
- android - PhoneStateListener 没有给出拨打/呼叫的号码
- php - 间隔日期之间的php总和数据
- java - 如何在排序链表的开头插入一个节点?
- javascript - 解码 javascript 发送到 python 的 base64 字符串
- angular - 错误中的错误:方法未在 Angular 应用程序中实现
- javascript - 如何在 Express 路由器中动态创建参数?
- python - Ubuntu 16.04 上的 onnxruntime 问题
- json - RestSharp:Client.Execute 的 Stackoverflow 异常