Python 根据条件更新循环中列表的上一个元素
我正在努力清理名单上的名字Python 根据条件更新循环中列表的上一个元素,python,list,Python,List,我正在努力清理名单上的名字 results = [] mylist = ['jellyfish','jellyish','jellyish','smellyfish'] #convert to unicode mylist = [unicode(i) for i in mylist] for i, j in enumerate(mylist): current = mylist[i] previous = mylist[i-1] current_score = jf
results = []
mylist = ['jellyfish','jellyish','jellyish','smellyfish']
#convert to unicode
mylist = [unicode(i) for i in mylist]
for i, j in enumerate(mylist):
current = mylist[i]
previous = mylist[i-1]
current_score = jf.jaro_winkler(current, previous)
if(current_score > 0.96):
current=previous
print current, current_score
我得到以下结果:
- 水母0.896296296296
- 水母0.977778
- 胶状1.0
- 臭鱼0.858333333
- 水母0.896296296296
- 水母0.977778
- 水母0.977778
- 臭鱼0.858333333
previous = mylist[i-1]
current_score = jf.jaro_winkler(current, previous)
if (current_score > 0.96):
mylist[i] = mylist[i-1]
current = previous
让我们关注需要更改的内容-您当前正在执行的
current=previous
,它只会将变量current
重新分配给另一个对象
您需要做的是实际更新列表。您已经在迭代索引了,所以只需要做一个小的更改
mylist = ['jellyfish', 'jellyish', 'jellyish', 'smellyfish']
for i, v in enumerate(mylist[1:], 1):
p, c = mylist[i - 1], v
if jf.jaro_winkler(p, c) > .96:
mylist[i] = p
不知道这是什么。什么是jaro winkler?这是在“水母”下比较字符串相似性的方法,它给出了当前_分数的数字。@cᴏʟᴅsᴘᴇᴇᴅ 看见