将几个整数放入列表中以获得最大数量

时间:2015-05-08 11:42:37

标签: python list max

我是Python新手,但我有一个问题,我无法用google oder stackoverlow回答。主要是因为我不知道在搜索字段中键入什么,因为“整数到列表”不能得到我想要的结果......

我的问题如下。我有一些输入文件,我一个接一个地打开,以获取存储在这些文件中的信息。在每个文件的第一行是一个数字(原子数 - 它是化学程序)从2到X. X是最大原子数。 我现在需要的是找出最大原子数。

我尝试过:我读取了每个文件的第一行,我也得到了NA(原子数),但我将它们作为整数分别得到。我现在想要的是将所有这些数字存储到一个列表中,这样我就可以制作max(List)并得到??? 我希望你明白我的意思...... :)

以下是我的代码的一部分:

def openfiles(dateiname):
    """opens an input file"""
    f = open('./files/dsgdb9nsd.xyz/' + dateiname,'r')

    lineList = f.readlines()
    NA = int(lineList[0])

然后是其他事情然后:

for d in range(0,2):
        datei = filenames[d]
        aMolecule = openfiles(datei)
        myNA = aMolecule[3]
        print myNA

解决方案:我现在可以通过制作

列出所有myNA的列表
myListofNA=[]
for d in range(0,2):
        datei = filenames[d]
        aMolecule = openfiles(datei)
        myNA = aMolecule[3]
        myListofNA.append(myNA)
print max(myListofNA)

谢谢,这解决了我的问题!我没想过在循环之外制作max(myListofNA)。

祝福, straumle

2 个答案:

答案 0 :(得分:0)

您可以使用以下列表理解替换for循环

myListofNA = [openfiles(filenames[i])[3] for i in range(2)]

或者为了保持for循环,您可以在循环之前创建list,并在每次迭代时创建append值。

myListofNA = []
for d in range(0,2):
    datei = filenames[d]
    aMolecule = openfiles(datei)
    myNA = aMolecule[3]
    print myNA
    myListofNA.append(myNA)

答案 1 :(得分:0)

您应该执行类似

的操作
# create an empty list object
myListofNA = []
for d in range(0,2):
    datei = filenames[d]
    aMolecule = openfiles(datei)
    myNA = aMolecule[3]
    print myNA
    # each time append a new entry to the list
    myListofNA.append(myNa)

# search the maximum element of the list
print max(myListofNA)

我在return的末尾错过了openfiles语句。可以考虑一下。尝试给每个功能一个问题。