У меня есть вложенный список, с каждым вторым элементом, имеющие различные длинами:Счетные сходства нескольких элементов с неравной длиной вложенного списка
lst = [[a,bcbcbcbcbc],[e,bbccbbccb],[i,ccbbccbb],[o,cbbccbb]]
Моего выходом является CSV из dataframe с этим взглядом:
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')
но я ПОЛУЧАТЬ ошибку:
if codes[i]==codes[i+1]:
IndexError: string index out of range
любой совет? благодаря!
Где инициализируется numPlaces? коды [i] == коды [i + 1] не отображаются в вашем фрагменте кода, если вы не имеете в виду строку [i] == string [i + 1] – elhefe
Что такое 'numPlaces' (возможно, это должно быть' length ')? И почему строка в вашем исключении не соответствует ни одной из строк в коде, который вы указали? В любом случае, я думаю, вы запутались в 'i', потому что вы используете одно и то же имя переменной для двух разных вещей в разное время. И если 'name'' '' 'в вашем списке, то место, которое вы делаете' name [i + 1] ', не имеет большого смысла. – Blckknght
@Blckknght благодарит вас за исправления. Я должен признать, что я очень смущен тем, что я в цикле for. –