Python 如何将数据库行结果和列表切片器视为字符串,以使Levenshtein函数正常工作

Python 如何将数据库行结果和列表切片器视为字符串,以使Levenshtein函数正常工作,python,Python,我卡住了,请帮帮我。我的目标是计算数据库中的每个描述与下一行中的描述之间的Levenshtein距离。我越来越接近了,但我相信下面这句话 x = editdistance.eval(item, t[a:b]) 。。。无法工作,因为项和t[a:b]未被视为字符串 如何将它们转换为字符串以使其正常工作 代码: 导入csv 导入sqlite3 从数组导入* 导入编辑距离 conn=sqlite3.connect('transactions.db') c=连接光标() c、 执行('按描述顺序从事务中

我卡住了,请帮帮我。我的目标是计算数据库中的每个描述与下一行中的描述之间的Levenshtein距离。我越来越接近了,但我相信下面这句话

x = editdistance.eval(item, t[a:b])
。。。无法工作,因为项和t[a:b]未被视为字符串

如何将它们转换为字符串以使其正常工作

代码:

导入csv
导入sqlite3
从数组导入*
导入编辑距离
conn=sqlite3.connect('transactions.db')
c=连接光标()
c、 执行('按描述顺序从事务中选择不同的描述')
t=[]
对于c中的行:
row=c.fetchone()
t、 追加(行)
对于t中的项目:

如果t.index(item)没关系,我就是个白痴。由于某种原因,它以前不起作用,但现在只要做x=editdistance.eval(str(item),str(t[a:b]),它就起作用了。

我是个白痴。由于某种原因,它以前不起作用,但现在只要执行x=editdistance.eval(str(item),str(t[a:b]),它就起作用了
import csv
import sqlite3
from array import *
import editdistance
conn = sqlite3.connect('transactions.db')
c = conn.cursor()
c.execute('select distinct description from transactions order by description')
t=[]
for row in c:
    row = c.fetchone()
    t.append(row)
for item in t:
    if t.index(item)<10: #just to limit output for testing
        print item
        a = t.index(item)+1
        b = a + 1
        print t[a:b]
        x = editdistance.eval(item, t[a:b])
        print x
        print "\n"