python中数据列表中的根标识:

时间:2015-09-14 22:43:27

标签: python nlp suffix-tree

我是Python新手。我试图从数据列表中提出“Root Identification”。但它不起作用。这是我尝试过的代码:

listData=["blackish", "blacken","blacked"]

我期望的输出是:

root = [black] and suffixLi = ["ish", "en", "ed"] 

其余代码:

def root():
    i=0
    j=0
    string = ""
    for word in listData:
        for i in range(len(min(listData, key=len))-1):
            print(len(min(listData, key=len)))
            if (listData[i][j]==listData[i+1][j]):
                string=string+listData[i][j]
                print(listData[i][j])
                print(string)
            i=i+1
            j=j+1
    print(string)  

2 个答案:

答案 0 :(得分:0)

在if语句中,索引i + 1超出范围。先纠正你的循环限制两行;你不能比list_length-2更远地运行“i”,但你试图将它一直运行到6。

另外,你在已经控制其值的循环内增加i;我认为你对如何处理循环索引感到困惑。

答案 1 :(得分:0)

假设你想要找到共同的前缀:

def root_pre(l):
    root = ""
    for t in zip(*l):
        if not all(t[0] == s for s in t):
            break
        root += t[0]
    ln = len(root)
    pres = [s[ln:] for s in listData]
    return root, pres

print(root_pre(listData))
('black', ['ish', 'en', 'ed'])