python - 将输入转换为字符串和两个 float

标签 python string numbers coordinates

我想将输入转换为字符串和两个数字,用户输入的内容将类似于“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/

相关文章:

java - Elasticsearch 5.x 无法启动

java - 罗马整数 - 但使用 "different"罗马数字系统

string - 变量替换中的 Bash 冒号运算符?

C#:从全局化/ISO 8601 兼容的 2 个日期中获取所有周数

python - 朱皮特 : Why does this second command stop the first one from working?

python - 使用 Python 读取带有日期对象和 float 的逗号分隔文件

python - 日期时间 : conversion from string with timezone name not working

C语言: Copying strings one by one to an array

c++ - 不明确的转换 - C++

java - 生成可除以 2 的随机数