gpt4 book ai didi

arrays - 在python中将stdin行转换为 "float/int"数组的更简单方法

转载 作者:行者123 更新时间:2023-12-04 19:27:45 26 4
gpt4 key购买 nike

我一直想学习更好和更短的编码方法,所以我有一个非常复杂的输入,我想可以写得更简单:

我有一个未知大小的浮点输入,当最后一个输入是一个新行时,我想把每一行都变成一个数组。

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

最佳答案

内置 iter has a second form专门针对此用例。

One useful application of the second form of iter() is to read lines of a file [or stdin] until a certain line is reached.



使用它,您可以通过单个列表理解获得相同的结果。
input_matrix = [[float(x) for x in line.split()] for line in iter(input, '')]

print(input_matrix)

输出
2.0 9.0 3.2 0.1 2.0
10 19 2.0
18 20 1.0 1.5

[[2.0, 9.0, 3.2, 0.1, 2.0], [10.0, 19.0, 2.0], [18.0, 20.0, 1.0, 1.5]]

关于arrays - 在python中将stdin行转换为 "float/int"数组的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50997006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com