【问题标题】:typeerror: 'float' object is not iterable in pythontypeerror:'float'对象在python中不可迭代
【发布时间】:2020-03-12 09:29:57
【问题描述】:

我有Md = [20, 30, 40, 50, 60] 并指向纬度Amp_lat = 1.98 和经度Amp_lon = 30.03 但我正在尝试运行以下代码但我收到此错误

TypeError: 'float' 对象不可迭代

for distkm in (Md):
    Center = Amp_lat, Amp_lon
    North = vincenty(kilometers=distKm).destination(Point(Amp_lat, Amp_lon), 0).format_decimal()
    East = vincenty(kilometers=distKm).destination(Point(Amp_lat, Amp_lon), 90).format_decimal()
    South = vincenty(kilometers=distKm).destination(Point(Amp_lat, Amp_lon), 180).format_decimal()
    West = vincenty(kilometers=distKm).destination(Point(Amp_lat, Amp_lon), 270).format_decimal()

【问题讨论】:

  • 你能解析完整的tracelog吗?
  • 我想看完整代码,但我猜错误来自vincenty 它是什么类型?
  • Md 是一个列表,因此您应该能够像拥有它一样对其进行迭代...所以您必须分配给 Md 的内容超出您的预期.. 可能是 1.98?
  • 嗨 Berbason,欢迎来到 python 和 stackoverflow 的两个世界:) 你知道 python 区分大小写吗?我可以看到您使用了一个全是小写字母的变量:“distkm”,然后在循环中您使用了一个具有相同字母但大写 K 的变量:“distKm”

标签: python loops for-loop iteration typeerror


【解决方案1】:

试试list comprehension,更方便:

new = [[k] for k in A]

说明

您收到 TypeError,因为您无法将 list() 函数应用于 float 类型的值。该函数接受一个可迭代对象作为参数,浮点数不可迭代。

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 2020-09-26
    • 1970-01-01
    • 2020-07-23
    • 2016-02-15
    • 2020-03-19
    • 1970-01-01
    • 2021-12-13
    • 2017-06-22
    相关资源
    最近更新 更多