将元组添加到列表中而不解压缩元组

时间:2017-11-18 22:15:03

标签: python list loops tuples

在Python中,我有一些像b这样的元组,我想将它们添加到空列表中而不解压缩它们。在这里,我简化了b以使它重复,实际上,b中的值会有所不同,所以b将是b1,b2,b3 ...

b = ({'a': 1, 'b': 1, 'c': 1}, 'y')
bb = [b, b, b]
print(len(bb))
print(len(bb[0]))
bb

这给出了

3 2 Out[204]: [({'a': 1, 'b': 1, 'c': 1}, 'y'),  ({'a': 1, 'b': 1,'c': 1}, 'y'),  ({'a': 1, 'b': 1, 'c': 1}, 'y')]

这就是我想要的。但由于我现在在循环中做,我不能写bb = [b,b,b]。我想出的语法将使我不想要的hiarachy。

bb = ()
b = ({'a': 1, 'b': 1, 'c': 1}, 'y')
bb = [bb, b] 
# in reality I loop bb with 3 times in for loop
bb = [bb, b]
bb = [bb, b]
print(len(bb))
print(len(bb[0]))
bb

这给出了

[[[(), ({'a': 1, 'b': 1, 'c': 1}, 'y')], ({'a': 1, 'b': 1, 'c': 1},'y')],  ({'a': 1, 'b': 1, 'c': 1}, 'y')]

并不希望我想要。我怎样才能循环并达到第一个结果?

2 个答案:

答案 0 :(得分:0)

只需使用列表理解:

b = ({'a': 1, 'b': 1, 'c': 1}, 'y')
bb = [b for i in range(3)]

输出:

[({'a': 1, 'c': 1, 'b': 1}, 'y'), ({'a': 1, 'c': 1, 'b': 1}, 'y'), ({'a': 1, 'c': 1, 'b': 1}, 'y')]

答案 1 :(得分:0)

从列表开始并使用append

bb = []
b = ({'a': 1, 'b': 1, 'c': 1}, 'y')
for _ in range(3):
    bb.append(b)