【问题标题】:List comprehension: TypeError: 'float' object is not iterable列表理解:TypeError:'float' 对象不可迭代
【发布时间】:2021-11-03 19:35:48
【问题描述】:

列表理解题。我正在解析一个带有数据的文本文件,如图所示。

sig1 = 1039.0
sig2 = 1034.0, 1035.0, 1036.0

通过一些字符串操作,我正在检查 sig1 是否有多个值,如果是,我正在迭代并附加到一个列表中,否则将其视为浮点数.(示例变量sig2)

要将 sig2 中的每个值转换为 Int,我使用如下所示的列表推导。

i_lst = [int(i) for i in sig2]

我面临的问题是有时 sig2 只能有一个值,这将被视为浮点变量而不是列表。这会弄乱列表理解,我得到以下错误。

TypeError: 'float' object is not iterable

如何在列表理解中克服这个问题?

【问题讨论】:

  • [int(i) for i in sig2 if isinstance(sig2, tuple)]
  • @not_speshal,由于处理的性质,我仍然必须保留 int 转换。

标签: python list-comprehension


【解决方案1】:

如果floatfloat,则将sig2 转换为列表:

i_lst = [int(i) for i in ([sig2] if isinstance(sig2, float) else sig2)]

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 2022-01-20
    • 1970-01-01
    • 2016-02-15
    • 2020-09-26
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多