首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从文件到列表读取整数?

如何从文件到列表读取整数?
EN

Stack Overflow用户
提问于 2014-04-21 23:54:33
回答 2查看 198关注 0票数 0
代码语言:javascript
复制
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中的一个文件,是由单个空格分隔的一堆随机数)。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2014-04-22 00:23:50

代码语言:javascript
复制
# 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
EN

Stack Overflow用户

发布于 2014-04-22 00:06:17

我不知道这些数字是如何出现在您的输入文件中。尽管如此,您还是可以对代码做一些更改:

  • return语句移出循环之外。
  • 检查是否存在number的一个更好的方法是: 如果number.isdigit():

这给了你:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23207971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档