将几个整数放入列表中以获得最大数量
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
语句。可以调查一下。尽量给每个功能一个关注点。
我真的是 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
语句。可以调查一下。尽量给每个功能一个关注点。