python - 从字符串列表中删除短于 k 的字符串

标签 python list

<分区>

我有一个字符串列表,如下所示:

mylist = ['a', 'b', 'c', 'aa', 'bb', 'cc', 'aaa', 'bbb', 'ccc',  'aaaa', 'bbbb', 'cccc']

我只需要提取具有 k=4 个字符的字符串,因此输出将是:

minlist = ['aaaa', 'bbbb', 'cccc']

如何高效实现?

最佳答案

这正是 filter 的情况类型功能用于:

>>> mylist = ['a', 'b', 'c', 'aa', 'bb', 'cc', 'aaa', 'bbb', 'ccc',  'aaaa', 'bbbb', 'cccc']
>>> minlist = list(filter(lambda i: len(i) == 4, mylist))
>>> minlist
['aaaa', 'bbbb', 'cccc']

filter 接受两个参数:第一个是函数,第二个是可迭代对象。该函数将应用于 iterable 的每个元素,如果函数返回 True,该元素将被保留,如果函数返回 False,该元素将被保留排除在外。 filter 返回根据传入的函数过滤这些元素的结果

作为旁注,filter 函数返回一个 filter 对象,它是一个迭代器,而不是一个 list(这就是为什么包括显式 list 调用)。因此,如果您只是简单地遍历值,则不需要将其转换为 list,因为这样会更有效率

关于python - 从字符串列表中删除短于 k 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61829924/

相关文章:

python - 如何按顺序保留要附加到 python 列表的项目 - 输入顺序

python - 如何在条件下计算 csv 文件中某个单词的出现次数?

python复制嵌套列表

python - 为什么我的数据库不能在此 Python/Django 应用程序中运行?

python - NumPy 数组索引

python - 如何使用 Makefile 组合单元测试结果?

python - 检测 ROI 中的人脸中心

python - 查找一个列表中的元素在另一个全包含列表中的存在数量

python - 获取元组列表中 float 的最大值?

python - 查找列表的前 N ​​个元素,直到满足条件