【问题标题】:Convert Tuple to Float In Python在 Python 中将元组转换为浮点数
【发布时间】:2022-01-24 17:31:10
【问题描述】:

我有这个元组

t = (['?'], ['?'], [3], [48.0489692022056], [9.32161088395051])

并且想在不导入任何模块的情况下将第四个和第五个索引转换为浮点数(math 或 geodist 除外)

地质学家需要那个

if geodist((x, y), (i[3], i[4])) ...:

因为它只接受元组!

错误:TypeError: must be real number, not list

【问题讨论】:

  • 那不是一个列表,那是一个元组
  • 也不要使用list作为变量名
  • 那些数字已经是浮动的了。什么是预期输出?您在寻找只有浮点数的列表吗?
  • tuple(float(i[0]) for i in t if isinstance(i[0],float))?

标签: python list


【解决方案1】:

您可以循环遍历您的元组并为此使用 python 的内置 isinstance() 函数:

t = (['?'], ['?'], ['?'], [48.0489692022056], [9.32161088395051])
tuple([i[0] for i in t[3:] if isinstance(i[0], float)])

输出:

(48.0489692022056, 9.32161088395051)

【讨论】:

  • 前三个数组也可以是 float 类型:/
  • 我误解了你的问题。您可以对元组进行切片。在这种情况下t[3:]
  • 我更新了问题:§
  • print(t[3:]) 是([48.0489692022056], [9.32161088395051])
  • 我编辑了答案。如果您希望(48.0489692022056, 9.32161088395051) 作为输出,则此代码可以正常工作。
【解决方案2】:

new_t = (float(t[3]), float(t[4]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 2019-12-04
    • 1970-01-01
    • 2013-03-23
    • 2016-01-12
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多