gpt4 book ai didi

将 float 转换为字符串的 Python 单行代码

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:01 24 4
gpt4 key购买 nike

我想将 0.0 到 39.9 之间的 float 转换为字符串。如果十位分别是 1、2 或 3,请将其替换为 L、T 或 Y。如果它在其中,则附加一个 M。例如,22.3 将返回 T2.3,8.1 将返回 M8.1,依此类推。否则,返回 float 。

这段代码当然有效,但我想知道是否有更简单(如果不是一行)的解决方案。这是代码:

def specType(SpT):
if 0 <= SpT <= 9.9:
return 'M{}'.format(SpT)
elif 10.0 <= SpT <= 19.9:
return 'L{}'.format(SpT - 10)
elif 20.0 <= SpT <= 29.9:
return 'T{}'.format(SpT - 20)
elif 30.0 <= SpT <= 39.9:
return 'Y{}'.format(SpT - 30)
else:
return SpT

谢谢!

最佳答案

怎么样:

def specType(SpT):
return '{}{}'.format('MLTY'[int(SpT//10)], SpT % 10) if 0.0 <= SpT <= 39.9 else SpT

给出

>>> specType(0.0)
'M0.0'
>>> specType(8.1)
'M8.1'
>>> specType(14.5)
'L4.5'
>>> specType(22.3)
'T2.3'
>>> specType(34.7)
'Y4.7'

[如评论中所述,您需要考虑如何处理可以潜入您的边界的数字——我猜了一个;酌情修改。]

关于将 float 转换为字符串的 Python 单行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921067/

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