将整数元组转换为float

时间:2016-09-01 15:15:02

标签: python python-3.x type-conversion

我有一个整数元组。实际上,这不是一个元组,而是一个十进制数字,除了英语之外的所有语言都代表 1,2 ,而英语使用 1.2 。这个“元组”从文件中读取并与一系列整数一起添加到数组中,因此数据类型由Python自动分配,我对它没有任何影响......

whatever[7] = 1,2

是否有一些聪明的方法将其转换为1.2?我找到了方法,但他们只在字符串上工作,但当我将其转换为字符串时,它是括号并用空格分割,

str(whatever[7])
'(1, 2)'

...所以任务扩展到摆脱“(”,“)”和空间,这当然是可行的:

str(str(str(str(whatever[7]).replace(",",".")).replace(" ","")).replace("(", "")).replace(")","")

......但它的美丽和优雅并没有让我感到震惊。

4 个答案:

答案 0 :(得分:1)

你的意思是

print "%s.%s"%whatever[7]

如果你想将它转换为float

float("%s.%s"%whatever[7])

答案 1 :(得分:1)

您可以首先创建字符串表示'1.2',然后将其提供给float,将您的元组转换为浮点数。

为此,您可以使用mapint转换为str,并将其加入'.'并将其反馈给float()

例如:

>>> t = 1, 2
>>> f = float(".".join(map(str,t)))
>>> print(f)
1.2

答案 2 :(得分:0)

以下格式适用于您给出的示例。

whatever[7] = 1, 2
new_num = float("{}.{}".format(whatever[7][0], whatever[7][1]))

答案 3 :(得分:-1)

这个怎么样?

>>> whatever = 1,2
>>> float('.'.join(str(num) for num in whatever))
1.2

与Jim的答案一样,它创建了str '1.2'的表示,但它不是使用map,而是创建一个生成器对象(基本上是列表推导的后面),它转换{{1}中的每个项目} to string,whatever方法可以迭代。最后,该字符串将转换为float类型对象