我总是想学习更好和更短的编码方法,所以我有一个相当复杂的输入,我想可以用更简单的方式来编写:
我有一个未知大小的浮点输入,当最后一个输入是一个新的行时,我想把每一行都变成一个数组。
import sys
input_matrix = []
for line in sys.stdin:
if line != '\n':
str_input = line.split(" ")
float_input = []
for i in range(len(str_input)):
float_input.append(float(str_input[i]))
input_matrix.append(float_input)
else:
break
输入是这样的:
2.0 9.0 3.2 0.1 2.0
10 19 2.0
18 20 1.0 1.5
发布于 2018-06-23 09:10:35
>>>import sys
>>>input_matrix = []
>>> while True:
... line = sys.stdin.readline().strip()
... if not line:
... break
... input_matrix.append(map(float, line.split()))
...
2.0 9.0 3.2 0.1 2.0
10 19 2.0
18 20 1.0 1.5
>>> input_matrix
[[2.0, 9.0, 3.2, 0.1, 2.0], [10.0, 19.0, 2.0], [18.0, 20.0, 1.0, 1.5]]
发布于 2018-06-23 09:12:29
为什么不使用一个小列表理解。在这段代码中,它可以节省2行代码,但在大程序中,它可以节省相当多的代码行,并且不要忘记导入sys
,否则会显示错误。代码如下:
import sys
input_matrix = []
for line in sys.stdin:
if line != '\n':
str_input = line.split(" ")
float_input = [str_input[i] for i in range(len(str_input))]
input_matrix.append(float_input)
else:
break
https://stackoverflow.com/questions/50997006
复制相似问题