【发布时间】: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 转换。