我有一个整数元组。实际上,这不是一个元组,而是一个十进制数字,除了英语之外的所有语言都代表 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(")","")
......但它的美丽和优雅并没有让我感到震惊。
答案 0 :(得分:1)
你的意思是
print "%s.%s"%whatever[7]
如果你想将它转换为float
float("%s.%s"%whatever[7])
答案 1 :(得分:1)
您可以首先创建字符串表示'1.2'
,然后将其提供给float
,将您的元组转换为浮点数。
为此,您可以使用map
将int
转换为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类型对象