1

Тема: Виведення масиву в консоль

Попередня назва: "python HELP ME!!!"

Мені потрібно вивести масив в консоль але як звичайний текст... Ніхто не знає як мені допомогти??? :D  %)

2

Re: Виведення масиву в консоль

>>> a = [1,2,3]
>>> print(a)
Подякували: leofun01, koala, ostap34PHP3

3

Re: Виведення масиву в консоль

Тему перенесено з "Обговорення" в "Python".

TimaMatviiv, ще раз прочитайте пункти 3.2 - 3.5 правил, змініть назву, зформулюйте чітке завдання і напишіть з чим саме виникли проблеми.

4

Re: Виведення масиву в консоль

Як звичайний текст — що саме мається на увазі? Можливі різні варіанти, залежно від того, що в цьому масиві (мається на увазі, очевидно, список (list)?) міститься й як ми хочемо його відобразити.
В найпростішому випадку — так, як було показано вище, але, судячи з самого питання, Вам цей простий варіант чимось не підходить.

Наприклад, якщо нам треба вивести його в один рядок, розділивши елементи пробілами:

arr=[1, 2.3, 'qwerty']

for i in arr:
    print(i, end=' ')
print()

Або вивести в стовпчик (ще простіше):

for i in arr: print(i)

Або, якщо ми знаємо, що кожен елемент списку містить літеру (а сам список є представленням символьного рядка):

arr=list('qwertyuiop')

print(''.join(arr))

Або, якщо це двовимірний масив, який ми хочемо відобразити в вигляді таблички:

arr=[[1,2,3], [40,50,60], [700,800,900]]

for i in arr:
    for j in i:
        print(j, end='\t')
    print()

(Можливі й інші варіанти — залежить від конкретної задачі. Всі наведені мною приклади коду стосують python 3.*, для python 2.* їх слід переробити)

Подякували: leofun01, TimaMatviiv2

5

Re: Виведення масиву в консоль

Ще як варіант:

a=[1,2,3,'a','b','c']
print(*a) #1 2 3 a b c
Подякували: P.Y., leofun01, TimaMatviiv3

6

Re: Виведення масиву в консоль

TimaMatviiv написав:

Мені потрібно вивести масив в консоль але як звичайний текст... Ніхто не знає як мені допомогти??? :D  %)

в базових типах даних пітона НЕМА такого типу, як масив. в умові точно звучало слово "масив" ?

для створення  масиву треба або писати свій клас, або можна скористатися numpy

import numpy as np

arr = np.array([1,3,5,67])

print(*arr)
Подякували: koala, leofun01, P.Y.3

7

Re: Виведення масиву в консоль

Чому ж, насправді ще є «масив байтів» (bytearray), але навряд чи початківцю хтось дав би завдання працювати з цією екзотикою, та ще й називаючи просто «масивом».

З іншого боку, пітонівські «списки» насправді поєднують у собі функціонал і списків, і масивів. Тому для задач, де потрібен «масив», найбільш точним пітонівським відповідником цієї узагальненої абстракції буде список. Більше того, якщо взяти для порівняння список у ЛІСПі, список у пітоні й масив у Сі, то робота з пітонівським списком більше нагадуватиме роботу з сішним масивом.

Подякували: ping1

8

Re: Виведення масиву в консоль

Маси́в — впорядкований набір фіксованої кількості однотипних елементів, що зберігаються в послідовно розташованих комірках оперативної пам'яті, мають порядковий номер і спільне ім'я, що надає користувач.
https://uk.wikipedia.org/wiki/%D0%9C%D0 … %B8%D1%85)

згідно визначення масиву - він не може включати елементи різних типів, в той час як пітонівський список - може.
тобто тут питання не стільки в функціоналі, скільки в суті роботи з об'єктом.
працюючи з масивом можна бути впевненим, що всі дані відповідають типу масива, на відміну від списку.
тому саме ставлячи задачі для початківців, на мою думку, слід дуже уважно ставитися до термінів.
чому я і питав - чи в умові звучало слово "масив" - бо це б означало зовсім інше рішення задачі )
бо коли в термінах плутається новачок - це нормально і ще можна виправити. а от якщо це зробить постановщик задачі - то гірше )

Подякували: koala1

9

Re: Виведення масиву в консоль

згідно визначення масиву - він не може включати елементи різних типів, в той час як пітонівський список - може.

Для мов з динамічною типізацією масиви з фіксованим типом нехарактерні — за цим критерієм python'івський list не відрізняється від JS'івського Array'а. Або ж, з урахуванням, що всі типи даних є похідними від object, список (list) можна розглядати як масив об'єктів (елементи якого можуть бути як власне object, так і будь-якого похідного класу, включно з int, float, str тощо).

З іншого боку, що таке список у чистому вигляді? Це послідовність зі сполучених між собою вузлів, у яких містяться дані. Для власне списку доступ до елемента за індексом — необов'язкова додаткова фіча, зате існують такі типово спискові операції, як видобути перший елемент, видобути решту списку — пітонівський список реалізує ці дії опосередковано через індекс та індексний зріз (так, ніби замість списку в нас масив).

Далі, якщо не помиляюсь, з точки зору внутрішньої реалізації, пітонівський список є аналогом джавівського ArrayList'а — обгортки навколо масива, що імітує роботу з ним як із списком. Тому, хоча й list не має фіксованої довжини — елементи можна вставляти й вилучати, з точки зору продуктивності це важкі дії, яких бажано уникати і працювати зі списком як з масивом.

Подякували: ping, leofun012

10

Re: Виведення масиву в консоль

на жаль - зі списком НЕМОЖЛИВО працювати як з масивом.
ключова можливість роботи з масивами - векторизація.
тобто паралельні обчислення, броадкастинг які відбуваються не поелементно, а по всьому вектору , що і вимагає, щоб дані були одного типу.

import numpy as np

arr = np.array([1,3,5,67], dtype=np.float64)
arr /= arr.max()
print(*arr)

0.014925373134328358 0.04477611940298507 0.07462686567164178 1.0

Подякували: P.Y., leofun012

11

Re: Виведення масиву в консоль

До речі, існує ще таке поняття, як «асоціативний масив» (у пітонівській термінології — словник, dict), що також не є масивом у звичайному сенсі — проте, функціонал масива можна реалізувати й через «асоціативний масив», використовуючи числові ключі. Або ж, якщо нам потрібен «двовимірний масив», його можна реалізувати не як список із списків, а як словник з ключами-кортежами:

aa=dict()
for i in range(10):
    for j in range(10):
        aa[i,j]=i*j

for i in range(10):
    for j in range(10):
        print('%4d' % aa[i,j], end='')
    print()
Подякували: leofun011

12

Re: Виведення масиву в консоль

ping написав:

на жаль - зі списком НЕМОЖЛИВО працювати як з масивом.
ключова можливість роботи з масивами - векторизація.
тобто паралельні обчислення, броадкастинг які відбуваються не поелементно, а по всьому вектору , що і вимагає, щоб дані були одного типу.

import numpy as np

arr = np.array([1,3,5,67], dtype=np.float64)
arr /= arr.max()
print(*arr)

0.014925373134328358 0.04477611940298507 0.07462686567164178 1.0

Операції, застосовувані до всього масиву, широко використовуються в APL:

arr←1 3 5 67
arr←arr÷⌈/arr
⎕←arr

Проте, в більшості сучасних діалектів вимога однотипності елементів не ставиться. Оптимізація обчислень у таких випадках залежить від внутрішньої реалізації.

Подякували: ping1

13

Re: Виведення масиву в консоль

в мене ще одна проблема)
https://algotester.com/uk/ArchiveProblem/Display/3 там нажміть "умова"
то хто може знає є така штука AlgoTester я незнаю як розвязати цю задачу може хтось знає відповідь????

14

Re: Виведення масиву в консоль

TimaMatviiv написав:

в мене ще одна проблема) ... може хтось знає відповідь????

koala знає.

15

Re: Виведення масиву в консоль

koala знає відповідь на мові програмування pascal а мені треба python

16

Re: Виведення масиву в консоль

koala знає все :)

17

Re: Виведення масиву в консоль

TimaMatviiv написав:

koala знає відповідь на мові програмування pascal а мені треба python

Я там і словами алгоритм описав. Та й зрештою можете код 1:1 перенести, Python може практично так само (а може й ще простіше).

18 Востаннє редагувалося leofun01 (15.02.2019 16:16:13)

Re: Виведення масиву в консоль

TimaMatviiv написав:

koala знає відповідь на мові програмування pascal а мені треба python

https://i.ibb.co/wBgNN5s/to-ty-sia-znushchaiesh-244x240.jpg

upd: оновив посилання на картинку.

Подякували: FakiNyan, Crossland2

19

Re: Виведення масиву в консоль

leofun01 написав:
TimaMatviiv написав:

koala знає відповідь на мові програмування pascal а мені треба python

https://vignette.wikia.nocookie.net/warframe/images/3/33/Mem-da-vyi-izdevaetes-600x591.jpg/revision/latest/scale-to-width-down/244?cb=20170427121314&path-prefix=ru

Прихований текст

посилання на картинку містить кацапську латинку та сру, баньте https://cdn.discordapp.com/attachments/333936584481177600/545960609729085447/unknown.png

Подякували: leofun011

20

Re: Виведення масиву в консоль

FakiNyan, не думали дівчину завести?