我想将输入转换为字符串和两个数字,用户输入将类似于“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(","))
答案 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])