Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2015 19:44:47

integr1
Зарегистрирован: 2013-11-12
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

Как создать массив 50*50 целых чисел и заполнить тройками ?

Офлайн

#2 Март 29, 2015 20:26:04

Yurka
Зарегистрирован: 2015-03-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

lst  = [3 for x in range(0, 51)]
lst1 = [lst for x in range(0, 51)]
print(lst1)
# либо так, нагляднее:
for i in lst1:
    print(i)

не?

Отредактировано Yurka (Март 29, 2015 20:29:14)

Офлайн

#3 Март 29, 2015 21:03:15

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

Yurka
Ты список длинной 51 создаёшь.

И кстати если уж использовать генераторы списков, то делать это наверно надо так:

[[3 for j in range(50)] for i in range(50)]
а то как-то не красиво получается.

Отредактировано alex925 (Март 29, 2015 21:20:40)

Офлайн

#4 Март 30, 2015 05:28:08

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

Господа, заполнять список числами и другими нессылочными типами можно так

[3] * 50



Офлайн

#5 Март 30, 2015 06:07:13

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 144
Репутация: +  8  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

import numpy as np
arr = np.zeros((50, 50), dtype=int)
arr[:] = 3
print(arr)
?
этоже питон подправил чуток

Отредактировано Vigi (Март 30, 2015 07:42:15)

Офлайн

#6 Март 31, 2015 19:33:44

Reitrel
Зарегистрирован: 2015-03-31
Сообщения: 5
Репутация: +  1  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

lst=[[3 for x in range(50)] for x in range(50)]
for i in lst:
    print(i)

Думаю это самый оптимальный вариант.

Офлайн

#7 Март 31, 2015 20:11:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

Reitrel
Думаю это самый оптимальный вариант.
Не факт!

def test1():
    lst = [[3 for x in range(50)] for x in range(50)]
def test2():
    lst = [[3 for x in xrange(50)] for x in xrange(50)]
def test3():
    lst = [[3] * 50 for _ in range(50)]
def test4():
    lst = [[3] * 50 for _ in xrange(50)]
if __name__ == '__main__':
    import timeit
    print(timeit.timeit("test1()", setup="from __main__ import test1", number=100000))
    print(timeit.timeit("test2()", setup="from __main__ import test2", number=100000))
    print(timeit.timeit("test3()", setup="from __main__ import test3", number=100000))
    print(timeit.timeit("test4()", setup="from __main__ import test4", number=100000))


а вот результат

15.5663039684
13.9283020496
2.48807406425
2.43950200081



Отредактировано FishHook (Март 31, 2015 20:14:49)

Офлайн

#8 Март 31, 2015 20:19:46

Reitrel
Зарегистрирован: 2015-03-31
Сообщения: 5
Репутация: +  1  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

FishHook
Класс! возьму на заметку способы тестирования! Спасибо!

Офлайн

#9 Март 31, 2015 20:24:19

Reitrel
Зарегистрирован: 2015-03-31
Сообщения: 5
Репутация: +  1  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

FishHook
Прокоментируй плиз эту строку:
if __name__ == '__main__':
   

Офлайн

#10 Март 31, 2015 20:31:20

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Создать массив в Python3 и заполнить тройками

Vigi
этоже питон подправил чуток
...
arr = np.ones((50, 50), dtype=int)*3
...



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version