在浮点数列表中仅将零更改为整数

时间:2018-11-23 13:07:58

标签: python list types int

我的代码中有此输出

[0.0, 0.0, 0.25, 0.5, 1.0],

但是我需要这样-

[0, 0, 0.25, 0.5, 1.0]

关于如何将零更改为整数的任何提示?

3 个答案:

答案 0 :(得分:4)

如果您要将所有零都更改为整数,则只需进行简单的列表解析即可。

>>> lst = [0.0, 0.0, 0.25, 0.5, 1.0]
>>> [x or 0 for x in lst]
[0, 0, 0.25, 0.5, 1.0]

当且仅当x == 0时,表达式将被评估为0

这是假设lst中没有其他虚假值,例如空字符串或列表。

答案 1 :(得分:1)

这是一个奇怪的请求,但是您可以根据具体情况进行处理,将所有零变成int

>>> output = [0.0, 0.0, 0.25, 0.5, 1.0]
>>> [int(x) if not x else x for x in output]
[0, 0, 0.25, 0.5, 1.0]

列表理解与

相同
new_list=[]
for x in output:
    if x == 0:
        new_list.append(int(x))
    else:
        new_list.append(x)

如果需要调整for循环形式,可以更轻松地制定更复杂的替换规则。

答案 2 :(得分:0)

您只需通过列表理解即可做到:

示例:

如果我希望所有小于3 的数字为整数休息浮动,那么我会这样做。

myList = [1.1 , 2.7 , 7.8 ,8 ,8.9 ,3.2]
myList = [ int(i) if i < 3 else i for i in myList ]
print(myList)

输出:

[1, 2, 7.8, 8, 8.9, 3.2]

您所需的代码是:

 myList = [0.0, 0.0, 0.25, 0.5, 1.0]
 myList = [int(i) if i == 0 else i for i in myList]
 print(myList)