def make_number_list(a_file):
number_list= []
for line_str in a_file:
line_list = line_str.split()
for number in line_list:
if number != " ":
number_list.append(number)
return number_list
opened_file = open(input("Name of input file: "))
a_file_list = make_number_list(opened_file)
print(a_file_list)
print("Length: ", len(a_file_list))
我试图将(最终)1000个整数值从文件读入列表..然后找到它们的最大值,最小值和第i个值。但是,这不能读取列表(我只是使用一个测试列表,它是TextEdit中的一个文件,是一串由一个空格分隔的随机数)。有什么建议吗?
答案 0 :(得分:1)
# assumes Python 3.x
def read_nums(fname):
with open(fname) as inf:
return [int(i) for i in inf.read().split()]
def main():
fname = input("Name of input file: ")
nums = read_nums(fname)
print("Read {} numbers".format(len(nums)))
if __name__=="__main__":
main()
答案 1 :(得分:0)
我不确定输入文件中的数字是如何出现的。尽管如此,您可以对代码进行一些更改:
return
语句移出循环。检查number
是否存在的更好方法是:
if number.isdigit():
这给了你:
def make_number_list(a_file):
number_list= []
for line_str in a_file:
line_list = line_str.split()
for number in line_list:
if number.isdigit():
number_list.append(number)
return number_list