2024-06-24 13:42:20 发布
网友
如果我有一个单词“饥饿”,我有一个类似['asdfd', 'hingry', 'hungre', ' hangrr']的列表
['asdfd', 'hingry', 'hungre', ' hangrr']
我怎么能把“欣格里”和“饥饿”去掉呢?我考虑过使用regex,但在python中使用它的经验并不丰富
一旦你安装了python-levenshtein,就很容易了:
python-levenshtein
>>> from Levenshtein import distance >>> distance( 'hingry', 'hungry') 1 >>> distance( 'hungre', 'hungry') 1 >>> distance( 'hungr', 'hungry') 1
它自动处理:
最后的代码可能如下所示:
>>> words = ['asdfd', 'hingry', 'hungre', ' hangrr'] >>> [w for w in words if distance( 'hungry', w) < 2] ['hingry', 'hungre']
您可以使用itertools.zip_longest和sum:
itertools.zip_longest
sum
from itertools import zip_longest as _zip d = ['asdfd', 'hingry', 'hungre', ' hangrr'] word = 'hungry' results = [i for i in d if sum(a == b for a, b in _zip(i, word)) >= len(word)-1]
输出:
['hingry', 'hungre']
一旦你安装了
python-levenshtein
,就很容易了:它自动处理:
最后的代码可能如下所示:
您可以使用
itertools.zip_longest
和sum
:输出:
相关问题 更多 >
编程相关推荐