Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 2, 2021 21:03:34

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

Многомерные массивы

Всем привет,

Изучаю сейчас многомерные массивы. И пришла в голову такая идея.

К примеру есть массив:

 a = [[0,2,4,6],[1,5,[9,7,8,9],13],[3,7,22,58]]

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

Мне пришло в голову только этот ужас:
 for i in a:
    for j in i:
        if len(str(j)) > 2:
            for k in j:
                print(k)


Офлайн

#2 Фев. 2, 2021 23:40:08

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

Многомерные массивы

sepomd
Изучаю сейчас многомерные массивы. И пришла в голову такая идея.
К примеру есть массив:
То что вы привели не многомерный массив.
sepomd
какой код самый оптимальный что через цикл for прочитать массив ?
Для оптимальности вы критерий оптимизации приведите. Обычно оптимизацией никто не занимается, оно должно быть удовлетворительно.

Где вы чтото читаете? у вас print - это печатаете.

Я бы удовлетворился для печати вот таким кодом:

 print(a)
А вообще вывод и ввод проектируют одновременно. Если вы чтото выводите, то наверное и вводит будете. вы можете взять библиотеки которые могут такое вводить выводить json/yaml



Офлайн

#3 Фев. 2, 2021 23:43:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Многомерные массивы

Здесь делал.

  
>>> def flatten(seq):
...     for i in seq:
...         if hasattr(i, '__getitem__') and not isinstance(i, str):
...             for j in flatten(i):
...                 yield j
...         else:
...             yield i
... 
>>> a = [[0,2,4,6],[1,5,[9,7,8,9],13],[3,7,22,58]]
>>> list(flatten(a))
[0, 2, 4, 6, 1, 5, 9, 7, 8, 9, 13, 3, 7, 22, 58]
>>>


tags: flatten



Отредактировано py.user.next (Фев. 3, 2021 21:29:03)

Офлайн

#4 Фев. 3, 2021 21:33:03

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

Многомерные массивы

Извините, я наверное не правильно выразился. Мне интересно как ещё можно вывести элементы именно массива который находится по индексу a

Но решение оказалось проще простого

 a = [[0, 2, 4, 6], [1, 5, [9, 7, 8, 9], 13], [3, 7, 22, 58]]
for i in a[1][2]:
    print(i)

В любом случае, спасибо за ответы

Офлайн

#5 Фев. 3, 2021 22:57:07

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Многомерные массивы

sepomd
Изучаю сейчас многомерные массивы
sepomd
Мне интересно как ещё можно вывести элементы именно массива
Расскажите,в каком источнике вы узнали что в Python используется название “массив”

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version