将列表转换为浮点变量

时间:2016-09-15 04:32:23

标签: python list python-3.x floating-point

我想将输入作为列表但是将每个变量用作浮点数。是否有一种更简单的方法来进行此转换,而不是像下面那样显式转换,因为列表是用字符串定义的,我希望例如添加而不是连接:

edges = input("Enter three edges: ").split(", ")  
print("The perimeter is", (float(edges[0]) + float(edges[1]) + float(edges[2])))

3 个答案:

答案 0 :(得分:1)

您可以使用map转换为float,然后使用sum对其进行总结:

print("The perimeter is", sum(map(float, edges)))

map采用可调用的(float此处),并将其应用于可迭代的每个元素(此处为edges)。这会创建一个map迭代器(可以迭代的东西),然后提供给sum,它总结了它。

然后你打印出来。

你当然可以创建一个丑陋的小表达式,将它们组合在一起,因为inputsplit都会返回结果:

print("Sum is ", sum(map(float, input('Enter three edges ' ).split(","))))

但不要,这是丑陋的

答案 1 :(得分:1)

地图是你的朋友

sum(map(float, edges))

或生成器表达式

sum(float(f) for f in edges)

玩得开心!

答案 2 :(得分:0)

由于您可能只希望边缘为数字,因此您可以尽早转换它们:

edges = [float(edge) for edge in input("Enter three edges: ").split(", ")]
print("The perimeter is", sum(edges))

示例运行:

Enter three edges: 1.2, 3.4, 5.6
The perimeter is 10.2