【发布时间】:2018-05-26 10:07:25
【问题描述】:
我正在寻找一个不可迭代的数据集合。
其背后的原因是,有一些代码通过将多个结果添加到新列表然后调用“list.extend”函数来合并多个结果。
我尝试了元组,但它是可迭代的,我正在寻找一个不可迭代的内置集合。
它的作用:
>>> t1 = tuple([1,2,3])
... t2 = tuple([4,5,6])
... l = list()
...
>>> l.extend(t1)
>>> l.extend(t2)
>>>
>>> l
[1, 2, 3, 4, 5, 6]
我想成为什么样的人:
[(1,2,3), (4,5,6)]
请记住,我只能更改 t1、t2 变量....它必须经过范围。
【问题讨论】:
-
你能不能把它包装在一个单例元组中,所以它可以迭代它,它只有一个对象:
return (wrapped,) -
我猜你可以从一个集合对象继承并重写一些方法,如果它们被调用就会崩溃。请发布输入/预期输出,因为目前尚不清楚。
-
@Max - 我添加了更多细节 - 我认为我正在按照你的建议做......它不起作用
-
@Jean-FrançoisFabre - 请再次查看我已更新代码
-
t1 = tuple([1,2,3])没有做你认为它做的事情:它将列表更改为一个元组。写 t1 = ([1,2,3],) 将其包装在一个元组中。
标签: python collections iterable