在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你是对的,只需要添加所需的数字。这符合我的目的,因此非常感谢你的善意建议!