Я новичок в python, и у меня есть следующий фрагмент тестового кода с вложенным циклом, и я получаю несколько неожиданных списков:
import pybel
import math
import openbabel
search = ["CCC","CCCC"]
matches = []
#n = 0
#b = 0
print search
for n in search:
print "n=",n
smarts = pybel.Smarts(n)
allmol = [mol for mol in pybel.readfile("sdf", "zincsdf2mols.sdf.txt")]
for b in allmol:
matches = smarts.findall(b)
print matches, "\n"
По сути, список "поиск" представляет собой парустроки, которые я ищу, чтобы соответствовать в некоторых молекулах, и я хочу перебрать обе строки в каждой молекуле, содержащейся в allmol, используя программное обеспечение pybel.Тем не менее, результат, который я получаю:
['CCC', 'CCCC']
n= CCC
[(1, 2, 28), (1, 2, 4), (2, 4, 5), (4, 2, 28)]
[]
n= CCCC
[(1, 2, 4, 5), (5, 4, 2, 28)]
[]
, как и ожидалось, за исключением пары дополнительных пустых списков, в которых есть ошибки, и я не могу видеть, откуда они берутся.Они появляются после "\ n", поэтому не являются артефактом smarts.findall ().Что я делаю неправильно?спасибо за любую помощь.