Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如何读取跨行分布的指定数量的数字?_Python_Io - Fatal编程技术网

在Python中,如何读取跨行分布的指定数量的数字?

在Python中,如何读取跨行分布的指定数量的数字?,python,io,Python,Io,下面是我想读入的示例数据集: 12 68 69 54 64 68 64 70 67 78 62 98 87 第一行是一个数字,n,表示后面的n数字。然后,我想将标准输入中的n数字读取到单个数组中:如示例所示,它可以跨行排列。与C++不同,以下可以工作: for (int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i我从我给你的参考资料中总结出: num_to_read = int(input()) num_read = 0 ful

下面是我想读入的示例数据集:

12
68 69 54 64 68 64 70 67
78 62 98 87
第一行是一个数字,
n
,表示后面的
n
数字。然后,我想将标准输入中的
n
数字读取到单个数组中:如示例所示,它可以跨行排列。与C++不同,以下可以工作:

for (int i=1;i<=n;i++) scanf("%d",&a[i]);

for(int i=1;i我从我给你的参考资料中总结出:

num_to_read = int(input())
num_read = 0
full_list = []

while num_read < num_to_read:
    lst = list(map(int, input().split()))
    num_read = num_read + len(lst)
    full_list.extend(lst)

# protect from too much input
del full_list[num_to_read:] 

print (num_to_read)
print (num_read)
print (full_list) 
num\u to\u read=int(输入())
num_read=0
完整列表=[]
当num_read

感谢Roberto Caboni抓住了一个未处理的角落案例。请注意,这一行可以防止输入过多。

我的解决方案与已经发布的解决方案非常相似。我只是避免计算插入的元素,并在最后执行进一步检查,删除任何超过第一行中指定数量的元素:

num = int(input())

tempList = list()
while len(tempList) < num:
    tempList += list(map(int, input().split()))

print(tempList[:num])
num=int(输入())
templast=list()
而len(圣堂武士)
所以基本上:

  • 我首先读了
    num
  • 我迭代获取输入,直到列表长度达到(或超过)
    num
  • 一行一行地,我生成一个子列表,其中包含所解释的方法,并将其附加到列表中
  • 在打印它之前,我计算列表切片,以便准确地显示
    num
    元素

  • 注意:它的限制是,通过丢弃超出的元素,它也会消耗这些元素。因此这些元素将不可用于任何后续读取。

    欢迎使用堆栈溢出!您尝试了什么?什么不起作用?(提示:在线上有Python教程,甚至是免费的。还有语法参考。你不能从堆栈溢出的问题中学习语言。我一次读一行,然后把它分解成单独的数字(我可能也会在C中这样做,但我从不喜欢scanf)。几乎是重复的,但是,行数没有提前提供,数字的数量也提前给出,总是在单独的一行中,所以在我看来,这是有区别的。这个答案显示了如何阅读直到输入结束:我知道这是一个附带的情况,但是如果最后一行包含许多附加的元素怎么办把它放在列表中,使它比预期的大?这是python3@RobertoCaboni你是对的,只需要添加所需的数字。这符合我的目的,因此非常感谢你的善意建议!