列表组变成整数输出

问题描述

如何通过此代码将一组列表转换为整数输出?

matrix0 = [[3,-13,9,3],[-6,4,1,-18],[6,-2,2,4],[12,-8,6,10]]
vector0 = [-19,-34,16,26]

matrix1 = [[3,-5],[2,-3,1],[1,-1]]
vector1 = [0,4]

gaussy(matrix0,vector0,4)
gaussy(matrix1,vector1,3)

我有这样的输出,我想将其转换为整数,例如[3,1,-2] ...

The solution vector is [3.0000000000000004,0.9999999999999991,-2.0000000000000013,0.9999999999999996 ].
The solution vector is [0.9999999999999999,1.0,1.0000000000000002 ].

解决方法

您可以尝试以下操作:

lst = [3.0000000000000004,0.9999999999999991,-2.0000000000000013,0.9999999999999996 ]
lst = [round(elem) for elem in lst]

print(lst)

输出:

[3,1,-2,1]

因此,您的最终代码应如下所示:

matrix0 = [[3,-13,9,3],[-6,4,-18],[6,2,4],[12,-8,6,10]]
vector0 = [-19,-34,16,26]

matrix1 = [[3,-5],[2,-3,1],[1,-1]]
vector1 = [0,4]

out_lst1 = [round(elem) for elem in gaussy(matrix0,vector0,4)]
out_lst2 = [round(elem) for elem in gaussy(matrix1,vector1,3)]
,

您可以使用内置的round()map()函数:

rounded = map(round,gaussy(matrix0,4))

并转换回列表:

rounded = list(rounded)

这些语句可以合并为:

rounded = list(map(round,4)))

值得注意的是,这比列表理解(如Sushil的答案所示)更糟糕,因为它需要从地图对象转换为列表对象。性能差异可以忽略不计,但这是将函数应用于可迭代对象的两种最常见方法。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...