我的代码中有此输出
[0.0, 0.0, 0.25, 0.5, 1.0],
但是我需要这样-
[0, 0, 0.25, 0.5, 1.0]
关于如何将零更改为整数的任何提示?
答案 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)