Тема: Виведення масиву в консоль
Попередня назва: "python HELP ME!!!"
Мені потрібно вивести масив в консоль але як звичайний текст... Ніхто не знає як мені допомогти??? :D %)
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Python → Виведення масиву в консоль
Для відправлення відповіді ви повинні увійти або зареєструватися
Попередня назва: "python HELP ME!!!"
Мені потрібно вивести масив в консоль але як звичайний текст... Ніхто не знає як мені допомогти??? :D %)
>>> a = [1,2,3]
>>> print(a)
Тему перенесено з "Обговорення" в "Python".
TimaMatviiv, ще раз прочитайте пункти 3.2 - 3.5 правил, змініть назву, зформулюйте чітке завдання і напишіть з чим саме виникли проблеми.
Як звичайний текст — що саме мається на увазі? Можливі різні варіанти, залежно від того, що в цьому масиві (мається на увазі, очевидно, список (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.* їх слід переробити)
Мені потрібно вивести масив в консоль але як звичайний текст... Ніхто не знає як мені допомогти???
в базових типах даних пітона НЕМА такого типу, як масив. в умові точно звучало слово "масив" ?
для створення масиву треба або писати свій клас, або можна скористатися numpy
import numpy as np
arr = np.array([1,3,5,67])
print(*arr)
Чому ж, насправді ще є «масив байтів» (bytearray), але навряд чи початківцю хтось дав би завдання працювати з цією екзотикою, та ще й називаючи просто «масивом».
З іншого боку, пітонівські «списки» насправді поєднують у собі функціонал і списків, і масивів. Тому для задач, де потрібен «масив», найбільш точним пітонівським відповідником цієї узагальненої абстракції буде список. Більше того, якщо взяти для порівняння список у ЛІСПі, список у пітоні й масив у Сі, то робота з пітонівським списком більше нагадуватиме роботу з сішним масивом.
Маси́в — впорядкований набір фіксованої кількості однотипних елементів, що зберігаються в послідовно розташованих комірках оперативної пам'яті, мають порядковий номер і спільне ім'я, що надає користувач.
https://uk.wikipedia.org/wiki/%D0%9C%D0 … %B8%D1%85)
згідно визначення масиву - він не може включати елементи різних типів, в той час як пітонівський список - може.
тобто тут питання не стільки в функціоналі, скільки в суті роботи з об'єктом.
працюючи з масивом можна бути впевненим, що всі дані відповідають типу масива, на відміну від списку.
тому саме ставлячи задачі для початківців, на мою думку, слід дуже уважно ставитися до термінів.
чому я і питав - чи в умові звучало слово "масив" - бо це б означало зовсім інше рішення задачі )
бо коли в термінах плутається новачок - це нормально і ще можна виправити. а от якщо це зробить постановщик задачі - то гірше )
згідно визначення масиву - він не може включати елементи різних типів, в той час як пітонівський список - може.
Для мов з динамічною типізацією масиви з фіксованим типом нехарактерні — за цим критерієм python'івський list не відрізняється від JS'івського Array'а. Або ж, з урахуванням, що всі типи даних є похідними від object, список (list) можна розглядати як масив об'єктів (елементи якого можуть бути як власне object, так і будь-якого похідного класу, включно з int, float, str тощо).
З іншого боку, що таке список у чистому вигляді? Це послідовність зі сполучених між собою вузлів, у яких містяться дані. Для власне списку доступ до елемента за індексом — необов'язкова додаткова фіча, зате існують такі типово спискові операції, як видобути перший елемент, видобути решту списку — пітонівський список реалізує ці дії опосередковано через індекс та індексний зріз (так, ніби замість списку в нас масив).
Далі, якщо не помиляюсь, з точки зору внутрішньої реалізації, пітонівський список є аналогом джавівського ArrayList'а — обгортки навколо масива, що імітує роботу з ним як із списком. Тому, хоча й list не має фіксованої довжини — елементи можна вставляти й вилучати, з точки зору продуктивності це важкі дії, яких бажано уникати і працювати зі списком як з масивом.
на жаль - зі списком НЕМОЖЛИВО працювати як з масивом.
ключова можливість роботи з масивами - векторизація.
тобто паралельні обчислення, броадкастинг які відбуваються не поелементно, а по всьому вектору , що і вимагає, щоб дані були одного типу.
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
До речі, існує ще таке поняття, як «асоціативний масив» (у пітонівській термінології — словник, 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()
на жаль - зі списком НЕМОЖЛИВО працювати як з масивом.
ключова можливість роботи з масивами - векторизація.
тобто паралельні обчислення, броадкастинг які відбуваються не поелементно, а по всьому вектору , що і вимагає, щоб дані були одного типу.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
Проте, в більшості сучасних діалектів вимога однотипності елементів не ставиться. Оптимізація обчислень у таких випадках залежить від внутрішньої реалізації.
в мене ще одна проблема)
https://algotester.com/uk/ArchiveProblem/Display/3 там нажміть "умова"
то хто може знає є така штука AlgoTester я незнаю як розвязати цю задачу може хтось знає відповідь????
в мене ще одна проблема) ... може хтось знає відповідь????
koala знає.
koala знає відповідь на мові програмування pascal а мені треба python
koala знає відповідь на мові програмування pascal а мені треба python
Я там і словами алгоритм описав. Та й зрештою можете код 1:1 перенести, Python може практично так само (а може й ще простіше).
TimaMatviiv написав:koala знає відповідь на мові програмування pascal а мені треба python
Для відправлення відповіді ви повинні увійти або зареєструватися