Tim*_*497 5 arrays string casting input python-3.x
我总是想学习更好更短的编码方法,所以我有一个非常复杂的输入,我想这可以写得更简单:
我有一个未知大小的浮点输入,我想在最后一个输入为新行时将每一行转换为数组.
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
Run Code Online (Sandbox Code Playgroud)
输入是这样的:
2.0 9.0 3.2 0.1 2.0
10 19 2.0
18 20 1.0 1.5
Run Code Online (Sandbox Code Playgroud)
内置函数iter有专门针对此用例的第二种形式。
第二种形式的一个有用应用
iter()是读取文件 [或 stdin] 的行,直到到达某一行。
使用此功能,您可以通过单个列表理解获得相同的结果。
input_matrix = [[float(x) for x in line.split()] for line in iter(input, '')]
print(input_matrix)
Run Code Online (Sandbox Code Playgroud)
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]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |