将元组中的单个不可迭代数字转换为列表


a = ((), (), (5, 5, 5), (), (3), (), ())
[list(x) for x in a]

预期输出[[], [], [5, 5, 5], [], [3], [], []]但得到

TypeError:"int"对象不是可迭代的

您所拥有的不是元组。

使用(3,)而不是(3)来创建元组,否则Python认为它是一个表达式并返回3

(3(中缺少一个逗号。正确的代码是:

a = ((), (), (5, 5, 5), (), (3,), (), ())
[list(x) for x in a]

您可以添加一个判断语句,如下所示:

a = ((), (), (5, 5, 5), (), (3), (), ())
print(list(map(lambda x: [x] if isinstance(x, (int, float)) else list(x), a)))

我试过了a=(((,(([中x的元组(x(

我得到了TypeError:"int"对象不可迭代。有没有一种方法可以将其转换为(3,(?

最新更新