问题描述
如何通过此代码将一组列表转换为整数输出?
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)]
,
rounded = map(round,gaussy(matrix0,4))
并转换回列表:
rounded = list(rounded)
这些语句可以合并为:
rounded = list(map(round,4)))
值得注意的是,这比列表理解(如Sushil的答案所示)更糟糕,因为它需要从地图对象转换为列表对象。性能差异可以忽略不计,但这是将函数应用于可迭代对象的两种最常见方法。