Как заполнить массив нулями python
Перейти к содержимому

Как заполнить массив нулями python

  • автор:

Заполнить массив нулями и единицами [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 3 года назад .

Заполнить массив нулями и единицами, при этом данные значения чередуются, начиная с нуля. Помогите пожалуйста

Создание массива нулей в Python без использования NumPy

Для создания одномерного списка, состоящего из десяти нулей, используйте следующий код:

Скопировать код

zeros_list = [0] * 10

А если вам нужно создать эффективный массив нулей с помощью NumPy, воспользуйтесь функцией zeros :

Скопировать код

import numpy as np zeros_np = np.zeros(10)

Разжуем подробнее, как происходит создание одномерных и многомерных массивов, а также рассмотрим их производительность и ограничения.

Ошибки многомерных массивов при использовании умножения списков

Если вы используете умножение списка для создания многомерного массива, это может привести к нежелательным результатам из-за наличия общих ссылок в выходном списке:

Как заполнить массив нулями python

Здравствуйте, Jenyay, Вы писали:

J>Можно ли в питоне создать массив (или список) определенного размера и сразу заполнить его нулями?

x = [0] * 10 # [0,0. 0] x = [0,1,2] * 10 # [0,1,2,0,1,2. 0] x = ["hello"] * 10 # ["hello","hello". "hello"] # а теперь внимание, шухер! x = [[0,1,2]] * 10 # [[0,1,2],[0,1,2]. [0,1,2]] x[0][0] = 3 # [[3,1,2],[3,1,2]. [3,1,2]] - потому что внутренний список запомнился по ссылке

Перекуём баги на фичи!
Re: [Python] Заполнить массив нулями

От: Константин
Дата: 14.02.07 13:32
Оценка: 6 (1)

Здравствуйте, Jenyay, Вы писали:

J>Можно ли в питоне создать массив (или список) определенного размера и сразу заполнить его нулями?

a=[0 for x in range(100)] a=[0 for _ in range(100)] a=[0 for x in xrange(100)] a=[0 for _ in xrange(100)] a=[0]*100

Со последним способом нужно быть осторожным

a=[[]]*100 a[0].append(1) # сюрприз

Re[3]: [Python] Заполнить массив нулями

От: Константин
Дата: 15.02.07 10:07
Оценка: 6 (1)

Здравствуйте, Jenyay, Вы писали:

К>>a=[0 for x in range(100)]

J>Спасибо, только не понял почему работают первые 4 способо В справке такого выражения для for не нашел.

Это называется List Comprehensions.
Аналоги есть в haskell, erlang.

[Python] Заполнить массив нулями

От: Jenyay http://jenyay.net
Дата: 14.02.07 12:57
Оценка:

Можно ли в питоне создать массив (или список) определенного размера и сразу заполнить его нулями?
Re[2]: [Python] Заполнить массив нулями

От: Jenyay http://jenyay.net
Дата: 14.02.07 16:45
Оценка:

Здравствуйте, Константин, Вы писали:

К>

К>a=[0 for x in range(100)] К>a=[0 for _ in range(100)] К>a=[0 for x in xrange(100)] К>a=[0 for _ in xrange(100)] К>a=[0]*100 К>

Спасибо, только не понял почему работают первые 4 способо В справке такого выражения для for не нашел.

Re[2]: [Python] Заполнить массив нулями

От: Jenyay http://jenyay.net
Дата: 14.02.07 16:45
Оценка:

Здравствуйте, Кодт, Вы писали:

К>

К>x = [0] * 10 # [0,0. 0] К>x = [0,1,2] * 10 # [0,1,2,0,1,2. 0] К>x = ["hello"] * 10 # ["hello","hello". "hello"] К># а теперь внимание, шухер! К>x = [[0,1,2]] * 10 # [[0,1,2],[0,1,2]. [0,1,2]] К>x[0][0] = 3 # [[3,1,2],[3,1,2]. [3,1,2]] - потому что внутренний список запомнился по ссылке К>

Спасибо, а я копал в сторону range, думал с ним надо как-то извернуться

Re[2]: [Python] Заполнить массив нулями

От: Кодт
Дата: 15.02.07 11:14
Оценка:

Поправочка. Я там очепятался, из чего можно было сделать неверный вывод, будто [0,1,2]*10 даёт 10-элементный массив. На самом деле будет, конечно, 30-элементный.

К>x = [0,1,2] * 10 # [0,1,2,0,1,2. 0,1,2]

Перекуём баги на фичи!
Re[4]: [Python] Заполнить массив нулями

От: Jenyay http://jenyay.net
Дата: 15.02.07 15:01
Оценка:

Здравствуйте, Константин, Вы писали:

К>Это называется List Comprehensions.

Здорово, спасибо, удобная штука

Python создание и заполнение двумерного массива

Я недавно в питоне и непонятно вот что, при создании массива таким способом:

b = [[0] * 2] * 2
И заполнении:

for i in range(w): for r in range(l): print(i,r) b[i][r] = str(i) + str(r)

Массив заполняется не 00; 01; 10; 11, а 10; 11; 10; 11.

  • Вопрос задан более трёх лет назад
  • 126283 просмотра

Комментировать
Решения вопроса 3
Пример без numpy, вообще без внешних библиотек

#!/usr/bin/env python3 a = 3 b = 5 r = 0 # Чтобы было, чем заполнять mas = [] for i in range(a): mas.append([]) for j in range(b): mas[i].append(r) r += 1 # Чтобы заполнялось не одно и тоже print(mas) # [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]

Ответ написан более трёх лет назад
Нравится 7 1 комментарий
Rapt @Rapt Автор вопроса
Вот, пойдет!

ты создаешь список, а потом умножаешь его на 2, таким образом он не клонируется, а копируется сам объект со всеми его адресами, поэтому b[0][0] == b[1][0] и b[0][1] == b[1][1], так как у тебя в b[0] находится тот же объект что и в b[1].
Если хочешь создавать многомерные массивы используй:
b = numpy.array(range(4))
b.shape = (2,2)

Ответ написан более трёх лет назад
Нравится 3 3 комментария
Rapt @Rapt Автор вопроса
Как подключить numpy на linux?)

import numoy
если нет — скачать либы с офф сайта www.scipy.org/scipylib/download.html
еще она может numeric называться

import numpy*

adugin

Andrey Dugin @adugin Куратор тега Python

>>> dx = 2 >>> dy = 3 >>> matrix = [[0 for x in xrange(dx)] for y in xrange(dy)] >>> matrix [[0, 0], [0, 0], [0, 0]] >>> matrix[0][0] = 1 >>> matrix [[1, 0], [0, 0], [0, 0]]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *