我想将输入转换为字符串和两个数字,用户输入的内容将类似于“64 Union St Norwich NR2 2SL”,52.624388,1.285323,它始终以“,”分隔,并按此顺序。
coordinates = input("Enter data")
address, lat, long = map(float, coordinates.split(","))
是的,我知道我将“float”放入代码中,但我不确定需要放什么来使地址成为字符串,经纬度成为 float 。 我已经尝试过以下方法,它需要两个参数
address, lat, long = map(coordinates.split(","))
最佳答案
正如评论中所指出的,有多种方法可以实现这种拆分。已经建议的一个是 rsplit
address, lat, long = coordinates.split(",")
但请注意,您不能在此处使用 map
,因为您有两种不同类型的数据;字符串和 float 。尝试将字符串转换为 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))
关于python - 将输入转换为字符串和两个 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43896016/