将输入转换为字符串和两个浮点数

时间:2017-05-10 14:52:13

标签: python string numbers coordinates

我想将输入转换为字符串和两个数字,用户输入将类似于“64 Union St Norwich NR2 2SL”,52.624388,1.285323它将始终用“,”按顺序分隔。< / p>

    coordinates = input("Enter data")
    address, lat, long = map(float, coordinates.split(","))

是的我知道我把“浮动”放入代码中我不确定我需要把它放在那里以使地址成为字符串并且lat和long一个浮点数。 我已尝试过以下内容,它需要两个参数

    address, lat, long = map(coordinates.split(","))

2 个答案:

答案 0 :(得分:2)

正如评论中所指出的,有不同的方法可以进行这种拆分工作。已经建议的是rsplit

address, lat, long = coordinates.split(",")

但请注意,您不能在此处使用map,因为您有两种不同类型的数据;字符串和浮点数。尝试将字符串转换为float会产生错误。如果你想要一个衬垫,你可以尝试这个。

address, lat, long = [float(a) if i > 0 else a for i, a in enumerate(coordinates.rsplit(',',2))]

第二,想到它可以使用map,但是有一个lambda

map(lambda x: x[1] if x[0] == 0 else float(x[1]),enumerate(coordinates))

答案 1 :(得分:0)

简单方法:

string_split = coordinates.split(",")
address, lat, long = string_split[0], float(string_split[1]), float(string_split[2])