У меня есть массив: table = [[ 1 for x in range(1, 101)] for x in range(1, 101)]
Как изменить часть массива
Теперь я хочу установить некоторые элементы 0. Конечно, я мог бы итерацию по таблице и выбрать элементы, которые я хочу изменить, но это не имеет особого смысла, когда я хочу, чтобы изменить 25 элементов выхода из 10000. Так вот мой код:
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.
В чем проблема с этим соглашением и каков его правильный способ?
Я использую Python 2.7 и PyCharm для Windows.
И почему следующая строка:
print len(table[left-1:left+6][upper-1:upper+6])
печатает 0?
FYI, нет никаких массивов в python. Вы говорите о списках. –
@ Lafexlos, спасибо. Но это действительно не имеет значения. Он все еще не работает, когда я устанавливаю часть списка на 0. – user2738748