下面的代码执行后x
的值是多少?
x = []
for i in range(3):
x = [x + x]
A.[[[[]]]].
B.[[[],[]]].
C.[[[[],[]],[[],[]]]].
D.[[],[],[],[],[],[]]
答案是c,有人可以解释为什么会这样吗?我理解 2/3 迭代,但不明白它是如何从第 1 次到第 2 次的,比如为什么它没有变成 [[],[]]
最佳答案
为了表达清晰,我使用了额外的空格。
第一次运行:
x + x = [] + [] = []
空列表+空列表是另一个空列表
所以 [x + x] = [ [] ]
注意! [[]]
不是一个空列表,它是一个包含空列表的列表
第二次运行:
x + x = [[]] + [[]] = [[], []]
所以 [x + x] = [ [[], []] ]
第三次运行:
x + x = [[[], []]] + [[[], []]] = [[[], []]], [[[], []]] ]
所以 [x + x] = [[[[[], []]], [[[], []]]] ]
关于python - 嵌套括号空循环解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40167885/