python - 如何从包含超过 7 个唯一字符的列表中删除字符串?
问题描述
从列表中删除包含超过 8 个唯一字符的字符串的正确方法是什么?
例如,假设我有一个看起来像 ['jazz', 'messu', 'jazzmessu', 'jazzmessut'] 的列表,我需要从列表中删除 'jazzmessut',因为它包含超过 7 个独特的字母(j, a, z, m, e, s, u, t)。
我一直在尝试从这样的文件中删除这些词:
file1 = ['jazz', 'messu', 'jazzmessu', 'jazzmessut']
file2 = []
alphabet = [x for x in 'abcdefghijklmnopqrstuvwxyz']
for word in file1:
if set(alphabet) in set(word) < 8:
file2.append(word)
print(file2)
然而,这只返回一个空文件,所以我一定做错了什么。
在将它们作为集合进行比较之前,我应该以某种方式拆分每个单词还是做其他事情?
解决方案
您可以循环一次并检查唯一字母的长度是否小于 8。
>>> file1 = ['jazz', 'messu', 'jazzmessu', 'jazzmessut']
>>> file2 = [file for file in file1 if len(set(file)) < 8]
>>> file2
['jazz', 'messu', 'jazzmessu']
推荐阅读
- python - Python 类/函数参数定义的不同表示法
- xml - 解析 xml 文件并尝试仅返回值 > 0。基数为 10 的 int() 的无效文字:'201806-111-01471'
- mongodb - 在 Spark 中创建分层 JSON
- java - JPA - 从实例变量中提取值时引发 NullPointerException
- mysql - 在 MySQL 中创建存储函数/过程 - 新用户
- mysql - 在使用连接和多表/字段 ORDER BY 的查询中,如何设置 LIMIT 偏移量以从唯一 id 字段标识的特定行开始?
- python - 如何在 google colab 中提取带有密码的 Rar 文件?
- apache-spark - 有什么方法可以运行 spark 脚本并与 oozie 并行存储输出?
- c# - 存储文件夹获取或创建
- javascript - foo === +bar 是什么意思?