我有一个嵌套列表的多个元素的相似性,与每一个第二元件,其具有变化的长度:计算具有不相等长度的嵌套列表
lst = [[a,bcbcbcbcbc],[e,bbccbbccb],[i,ccbbccbb],[o,cbbccbb]]
我的输出是数据帧的这一下一个CSV:
comparison similarity_score
a:e *some score
a:i *some score
a:o *some score
e:i *some score
e:o *some score
i:o *some score
我的代码:
similarity = []
for i in lst:
name = i[0]
string = i[1]
score = 0.0
length =(len(string))
for i in range(length):
if string[i]==string[i+1]:
score += 1.0
new_score = (100.0*score)/length
name_seq = name[i] + ':' + name[i+1]
similarity.append(name_seq,new_score)
similarity.pdDataFrame(similarity, columns = ['comparison' , 'similarity_score'])
similarity.to_csv('similarity_score.csv')
但我recieving一个错误:
if codes[i]==codes[i+1]:
IndexError: string index out of range
有什么建议吗?谢谢!
numPlaces在哪里初始化?代码[i] ==代码[i + 1]不会出现在您的代码片段中,除非您的意思是string [i] == string [i + 1] – elhefe
什么是'numPlaces'(也许它应该是'length ')?为什么你的例外中的行不符合你所显示代码中的任何一行?无论如何,我认为你对'i'感到困惑,因为你在不同的时间使用同一个变量名称来处理两个不同的事情。如果'name'在你的列表中是'a',那么你做'name [i + 1]'的地方根本没有任何意义。 – Blckknght
@Blckknght感谢您的更正。我不得不承认我很困惑于我在for循环中。 –