List comprehension: TypeError: 'float' object is not iterable
List comprehension: TypeError: 'float' object is not iterable
列出理解题。我正在解析一个包含数据的文本文件,如图所示。
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
如何在列表理解中克服这个问题?
将 sig2
转换为列表,如果它是 float
:
i_lst = [int(i) for i in ([sig2] if isinstance(sig2, float) else sig2)]
列出理解题。我正在解析一个包含数据的文本文件,如图所示。
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
如何在列表理解中克服这个问题?
将 sig2
转换为列表,如果它是 float
:
i_lst = [int(i) for i in ([sig2] if isinstance(sig2, float) else sig2)]