gpt4 book ai didi

Python:将 float 1.0 作为 int 1 返回,但将 float 1.5 作为 float 1.5 返回

转载 作者:IT老高 更新时间:2023-10-28 22:16:08 28 4
gpt4 key购买 nike

在 Python 中有一种方法可以将 1.0 转换为整数 1 而同一函数忽略 1.5 并将其保留为 float

现在,int() 会将 1.0 变成 1 但它也会将 1.5 向下舍入1,这不是我想要的。

最佳答案

继续上面的评论:

使用 is_integer() :

docs 中的示例:

>>> (1.5).is_integer()
False
>>> (1.0).is_integer()
True
>>> (1.4142135623730951).is_integer()
False
>>> (-2.0).is_integer()
True
>>> (3.2).is_integer()
False

输入:

s = [1.5, 1.0, 2.5, 3.54, 1.0, 4.4, 2.0]

因此:

print([int(x) if x.is_integer() else x for x in s])

封装在一个函数中:

def func(s):
return [int(x) if x.is_integer() else x for x in s]

print(func(s))

如果你不想要任何import:

def func(s):
return [int(x) if x == int(x) else x for x in s]

print(func(s))

使用 map()lambda函数和迭代器 s:

print(list(map(lambda x: int(x) if x.is_integer() else x, s)))

print(list(map(lambda x: int(x) if int(x) == x else x, s)))

输出:

[1.5, 1, 2.5, 3.54, 1, 4.4, 2]

关于Python:将 float 1.0 作为 int 1 返回,但将 float 1.5 作为 float 1.5 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55510485/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com