背景: 我有一个文本文件,其中包含如下输入:
#1 GLN 15.A OE1
#1 ILE 16.A C
#1 ILE 16.A CA
#1 ILE 16.A CB
#1 ILE 16.A CD1
我将此文件转换为 python 中的字符串。我得到了我想要的输出(比如数字)。
部分代码在这里:
def extractnum(s):
x = s.split('\n')
x.pop() #To remove last line which is empty
y = [ i.split() for i in x ]
z = [ j[2] for j in y ] #z is the list that contains the residue and chain information
n = [int(k.split('.')[0]) for k in z]
a_chain_residues = ''
ca_a_chain_residues = ''
list_of_a_chain_residues = [ ]
for i in list(set(z)): #list(set(z)) gives a list that removes all the duplicate items in z: it doesn't change z
if i[-1] == 'A':
a_chain_residues = a_chain_residues + i +','
ca_a_chain_residues = ca_a_chain_residues + i + '.ca,'
list_of_a_chain_residues = list_of_a_chain_residues.append(i)
print list_of_a_chain_residues
终端读取错误
extractnum(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 17, in extractnum
AttributeError: 'NoneType' object has no attribute 'append'
为什么“我”不能添加到列表中?有办法解决这个问题吗?
请您参考如下方法:
请注意:
>>>i = []
>>>print i.append(2)
None
此追加的返回值为None。
所以,当这样做时:
list_of_a_chain_residues = list_of_a_chain_residues.append(i)
您将 list_of_a_chain_residues 设置为 None,因为 append 不返回值。 改为这样做:
list_of_a_chain_residues.append(i)
