删除列表中不以python中的数字结尾的所有元素

时间:2015-01-15 11:56:31

标签: python list

我试图通过删除未在1,2或3中完成的行来对我拥有的数组进行排序。 到目前为止,我还不是很成功,我提出的代码看起来像这样:

这些行设置要在函数中使用的变量

import numpy as np

A=[]
B=[]
C=[]
file = open('glycine_30c.data', 'r')
bondsfile = open('glycine_30c.bonds', 'r')

这些行将.data和.bonds文件读入数组

for lines in file:
    eq = lines.split()
    A.append(str(eq))

for x in bondsfile:
    bon = x.split()
    B.append(str(bon))

这些行(希望)删除列表中的所有元素" B"不以1,2或3结尾,然后将它们添加到新列表中,并且#34; C"虽然这不是必要的

for n in range(len(B)):
    if B[n].endswith(1,2,3) == True:
        C.append (B[n])
print C 

非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:0)

endswith()的文档说明:

endswith(...)
    S.endswith(suffix[, start[, end]]) -> bool

    Return True if S ends with the specified suffix, False otherwise.
    With optional start, test S beginning at that position.
    With optional end, stop comparing S at that position.
    suffix can also be a tuple of strings to try.

即。调用

B[n].endswith(1,2,3)

实际上并未真正检查B[n]是否以1,2,3中的任何一个结尾。您可能想要的是

B[n].endswith(("1", "2", "3"))

即。传递一个元组参数。