# [Tutor] longest common substring

lina lina.lastname at gmail.com
Sat Nov 12 10:01:16 CET 2011

<snip>

Sorry I finished last email in two different time,

while:
> INFILEEXT=".doc"
>
>
> def CommonSublist(L1, L2):
>    sublist=[]
>    sublists=[]
>    result=[]
>    M = [[0]*(1+len(L2)) for i in range(1+len(L1))]
>    longest, x_longest = 0, 0
>    for x in range(1,1+len(L1)):
>        for y in range(1,1+len(L2)):
>            if L1[x-1] == L2[y-1]:
>                M[x][y] = M[x-1][y-1]+1
>                if M[x][y] > longest:
>                    longest = M[x][y]
>                    x_longest = x
>                if longest >= 2:
>                    sublist=L1[x_longest-longest:x_longest]
>                    if sublist not in sublists:
>                         sublists.append(sublist)
>
>
>            else:
>                    M[x][y] = 0
>
>    return sublists
>
>
>
> if __name__=="__main__":
>
>
>    for i in range(1,11):
>        for j in range(1,11):
>            if i != j:
>                fileone="atom-pair_"+str(i)+".txt"
>                filetwo="atom-pair_"+str(j)+".txt"

correction: here not ".txt", it's ".doc"
>                print(fileone,filetwo)
>                print(CommonSublist(a,b))
>
> The output results:
>
the output is:

atom-pair_10.doc atom-pair_8.doc
[['75', '64'], ['13', '64', '75'], ['64', '62', '75', '16']]
atom-pair_10.doc atom-pair_9.doc
[['65', '46'], ['13', '75', '64']]

seems a bit better than before.

> atom-pair_10.txt atom-pair_8.txt
> [["'75',", "'64',"], ["'13',", "'64',", "'75',"], ["'64',", "'62',",
> "'75',", "'16',"]]
> atom-pair_10.txt atom-pair_9.txt
> [["'65',", "'46',"], ["'13',", "'75',", "'64',"]]
>

> the \$ python3 CommonSublists.py
> atom-pair_1.txt atom-pair_2.txt
> Traceback (most recent call last):
>  File "CommonSublists.py", line 47, in <module>
>    print(CommonSublist(a,b))
>  File "CommonSublists.py", line 24, in CommonSublist
>    result=result.append(sublist)
> AttributeError: 'NoneType' object has no attribute 'append'
>
> in local domain I set the result=[]
> I don't know why it complains its NoneType, since the "result" is
> nearly the same as "sublists".
>

Thanks with best regards,