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

Put several intengers into a list to get the maximum number

我真的是 Python 的新手,但我有一个问题,我无法用 google 或 stackoverlow 回答。主要是因为我不知道在搜索字段中输入什么,因为 "integers into list" 没有得到我想要的结果...

我的问题如下。我有许多输入文件,我一个接一个地打开以获取存储在这些文件中的信息。每个文件的第一行是一个从 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) 放在循环外。

最良好的祝愿, 斯特劳姆

您可以将 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)

你应该这样做

# 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)

我在 openfiles 末尾缺少 return 语句。可以调查一下。尽量给每个功能一个关注点。