为什么它跳过数组输入的第一行
why does it skips the first line for input of an array
输入格式
第一行包含 N 的 space 个分隔值
和M。
接下来的行包含 space 分隔的列元素。
input
2 2
1 2
3 4
代码
import numpy
my_array = numpy.array([input().split() for _ in range(int(input().split()[0]))],int)
print(my_array.T,my_array.flatten(),sep = "\n")
在获取数组输入时,代码如何跳过包含行数和列数的第一行“2 2”,
我只想了解它是如何开始从第二行接受输入的
output
[[1 3]
[2 4]]
[1 2 3 4]
此代码使用列表理解,其中后者的调用input()
读取第一行,因此它从第二行获取输入。
此代码等同于:
import numpy as np
# Read the first line.
num_rows = int(input().split()[0])
# Deal with data.
rows = []
for __ in range(num_rows):
rows.append(input().split())
my_array = np.array(rows, int)
print(my_array.T, my_array.flatten(), sep='\n')
首先,执行 for _ in range(int(input().split()[0]))
并从输入中读取第一行(在您的示例输入中,2 2
)。然后对于从执行的 range(int(input().split()[0]))
获得的范围,将读取下一行。
在您的示例输入中,首先将执行 for _ in range(int(input().split()[0]))
,实际上是 for _ in range(2))
,然后将使用 input().split()
读取 2 下一行。
输入格式
第一行包含 N 的 space 个分隔值 和M。 接下来的行包含 space 分隔的列元素。
input
2 2
1 2
3 4
代码
import numpy
my_array = numpy.array([input().split() for _ in range(int(input().split()[0]))],int)
print(my_array.T,my_array.flatten(),sep = "\n")
在获取数组输入时,代码如何跳过包含行数和列数的第一行“2 2”, 我只想了解它是如何开始从第二行接受输入的
output
[[1 3]
[2 4]]
[1 2 3 4]
此代码使用列表理解,其中后者的调用input()
读取第一行,因此它从第二行获取输入。
此代码等同于:
import numpy as np
# Read the first line.
num_rows = int(input().split()[0])
# Deal with data.
rows = []
for __ in range(num_rows):
rows.append(input().split())
my_array = np.array(rows, int)
print(my_array.T, my_array.flatten(), sep='\n')
首先,执行 for _ in range(int(input().split()[0]))
并从输入中读取第一行(在您的示例输入中,2 2
)。然后对于从执行的 range(int(input().split()[0]))
获得的范围,将读取下一行。
在您的示例输入中,首先将执行 for _ in range(int(input().split()[0]))
,实际上是 for _ in range(2))
,然后将使用 input().split()
读取 2 下一行。