我是新来的蟒蛇,并有下面的一段测试代码设有一个嵌套的循环,我如何产生一些意想不到的列表:出现在蟒蛇循环意想不到的列表
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"
从本质上讲,列表中的“搜索”是一些我希望在某些分子中匹配的字符串,我想使用pybel软件遍历allmol中包含的每个分子中的两个字符串。但是,结果我得到的是:预期除了一对夫妇在开槽被搞乱了我,我看不到的地方,他们都来自额外的空列表的
['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()的人工制品。我究竟做错了什么? 感谢您的任何帮助。
相依:移动'llmol = [摩尔用于pybel.readfile(“SDF”,“zincsdf2mols.sdf.txt”)摩尔]'出的循环。 – badp 2010-02-14 20:52:57