这有点恶魔,但是当你明白自己在做什么时,这一点非常明显。当你做这个时[[0]*3]*2,你首先要创建一个包含3个零的列表,然后你复制它以制作两个元素。但是,当您执行该复制时,不会创建具有相同内容的新列表,而是多次引用相同的列表。所以当你换一个时,它们都会改变。一个例子来突出它:In [49]: s = [[]]*2 # Create two empty listsIn [50]: s # See: Out[50]: [[], []]In [51]: s[0].append(2) # Alter the first element (or so we think)In [52]: s # OH MY, they both changed! (because they're the same list!)Out[52]: [[2], [2]]