我是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
答案 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
语句。可以考虑一下。尝试给每个功能一个问题。