【发布时间】:2015-12-04 10:07:20
【问题描述】:
我有一个数组:table = [[ 1 for x in range(1, 101)] for x in range(1, 101)]
现在我想将一些元素设置为 0。当然,我可以遍历表格并选择我想要更改的元素,但是当我想更改 10000 个中的 25 个元素时,这没有多大意义。所以这是我的代码:
left = randint(1,100)
table[left+1:left+3][left+1:left+3] = [[ 0 for x in range(1,3)] for x in range(1, 3)]
但是,当我对数组的所有单元格求和时:
sum(map(sum, table))
我得到 10 000。
这个分配有什么问题,正确的做法是什么?
我在 Windows 上使用 Python 2.7 和 PyCharm。
为什么会出现下面这行:
print len(table[left-1:left+6][upper-1:upper+6])
打印出 0?
【问题讨论】:
-
仅供参考,python 中没有数组。你在谈论列表。
-
@Lafexlos,谢谢。但这真的没关系。当我将列表的一部分设置为0时它仍然不起作用。