作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我天真地从包依赖列表中收集了数据。
取决于:foo bar baz >= 5.2
我结束了
d = set(['foo','bar','baz','>=','5.2'])
我不需要数字和操作数。
在 Perl 中我会
@new = grep {/^[a-z]+$/} @old
但我找不到方法,例如向 remove() 传递一个 lambda 或其他东西。
我最接近的是丑陋的:
[ item != None for item in [ re.search("^[a-zA-Z]+$",atom) for atom in d] ]
这让我得到了我想要的集合中哪些值的映射...如果集合的顺序是可重复的?我知道 Perl 哈希不是这种情况。
我知道如何迭代。 :) 我正在尝试以 pythonesque 的正确方式来做
最佳答案
这里不需要正则表达式。使用 str.isalpha
.有和没有列表理解:
my_list = ['foo','bar','baz','>=','5.2']
# With
only_words = [token for token in my_list if token.isalpha()]
# Without
only_words = filter(str.isalpha, my_list)
个人 我认为您不必对 Python 中的所有内容都使用列表理解,但当我建议使用 map
或 时,我总是皱着眉头过滤
答案。
关于python - 如何从 Python 列表中过滤项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314314/
我是一名优秀的程序员,十分优秀!