【发布时间】:2018-05-02 11:15:06
【问题描述】:
在 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]。我想出的语法会造成我不想要的层次结构。
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')]
并不是我想要的。如何循环并达到第一个结果?
【问题讨论】:
-
警惕
[b, b, b]所做的事情 - 它会在每个元组中创建 字典 的引用副本。