私は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"
基本的に、リスト「検索」は、いくつかの分子で一致させようとしているいくつかの文字列であり、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() のアーティファクトではありません。私は何を間違っていますか?助けてくれてありがとう。