PYTHON массивы на ПРОСТЫХ примерах. Отличия от СПИСКОВ и принцип работы
HTML-код
- Опубликовано: 22 май 2024
- Array массивы в Python с нуля в одном видео
⭐ Курс ООП и Приват канал: zproger-school.com/
⭐ Телеграм канал: t.me/+s9ScbtfzA3djNGI5
В данном видео мы рассмотрим Array массивы, принцип их работы и основные отличия от списков. Часто многие путают эти структуры, и думают что списки и массивы это одно и тоже. Цель данного видео, показать основные отличия массивов и познакомить вас с
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать криптовалютой: github.com/Zproger/donate
Таймкоды:
00:00 - Вступление
00:19 - Отличия массивов от списков
2:10 - Типы данных и инициализация массива
3:09 - Срезы, индексы
3:58 - Развернуть массив
4:54 - Узнать тип данных массива на лету
5:23 - Конкатенация, умножение и объединение массивов
5:51 - Узнать сколько байтов занимает тип данных массива
6:12 - Добавить значения, узнать количество повторений
6:28 - Преобразовать массив в список
6:56 - Поиск индекса определенного значения
7:23 - Добавить значение в массив по индексу
7:48 - Вернуть и удалить значение из массива
8:50 - Удалить значение из массива
9:33 - Пишем мини программу используя массивы
Решил также к каждому видео добавлять таймкоды.
Помогает ли это вам более комфортно смотреть видео?
И стоит ли дальше разбивать видео на эпизоды?
помогает
Да, спасибо очень удобно
Спасибо! Таймкоды очень помогают.
Было бы хорошо чуть помедленнее говорить.
И куча спецэффектов... это лишнее, по итогу важнее информация и ее качественное донесение.
Иногда "скучный" дядя у зеленой доски с мелом объяснит так, что всё становится понятно. Без лишней мишуры.
Для тех, у кого первый язык питон и не понимает отличие:
b = от -128 до 127
B = от 0 до 255
u = юникод
h = от -32768 до 32767
H = от 0 до 65535
i (взят для примера в видео) = от -2 147 483 648 до 2 147 483 647
I (большая i, а не л) = от 0 до 4 294 967 295
l (малая л, не путать с и) = от -2147483648 до 2147483647
L = от 0 до 18446744073709551615
q = от -9223372036854775808 до 9223372036854775807
Q = от 0 до 18446744073709551615
f = точность 6-7 знаков (32 битный)
d = точность 15-18 знаков (64 битный)
Для дополнения пишите в комментариях
Афигеть, я всегда знал что списки и массивы это разные вещи, но не знал что в Python тоже есть массивы.
Спасибо большое 🔥🧑💻🤝
:)
Никто не говорит про массивы. Все ограничиваются списком. Спасибо, очень доступно! лайк, подписка!
Благодарю
единственный адекватный человек, который не сравнивает массивы со списками, почему-то когда я изучал C# проблем не было, но перейдя в питон тут все ничего не понимают, все в кучу чтобы не смотрел везде пишут так массивы(списки), спасибо что хотя бы ты хорошо объяснил ото я уже начал сомниваться
Благодарю, очень рад что понравилось :)
Отличная подача! Благодарю
Рад что понравилось :)
Друже, у вас один из самых полезных и насыщенных каналов! Супер. А про многомерные массивы что-то будет?
а зачем про многомерные, там и так всё понятно, просто вместо size=* пиши size = (*, *...), или сколько там тебе надо измерений
Спасибо, интересно а главное компактно.
Спасибо за поддержку :)
спасибо за видео, мне было полезно
Пожалуйста :)
Видео конечно полезное, но остался один вопрос какие преимущества дает массив, кроме экономии памяти?
Решил потестить на сортировке вставкой и получилось, что места массив занимает в два раза меньше и почему-то алгоритм с ним работает медленнее хотя прогрессия сложности(O(n**2)) в случае со списком и массивом одинаковая.
Подскажите пожалуйста, вот Вы открываете файл на 4:16 , как его можно открыть?
И вообще есть ли какой-нибудь способ, чтобы открывать так все необходимые мне модули??
Это делается через Ctrl+ЛКМ
@@zproger спасибо 🥰
А почему в конце видео, в примере использования Array, лучше использовать именно его? Чем он лучше списка здесь? И вообще пример какой-то странный: этот цикл работает за О(n^2), хотя можно написать за O(n), и это даже проще и интуитивнее. Вроде бы Array нужен чтобы оптимизировать код, потому что некоторые операции в нём реализованы эффективнее, но в этом примере массив точно не спасает ваш код от квадратичной сложности. Плюс есть такой вопрос: зачем Array, если есть numpy? Разве хоть где-нибудь он будет эффективнее?
Было бы очень странно, если бы в видео по Array я написал программу используя списки.
Я специально взял Array, чтобы показать практический пример, но в данном случае это не лучше списков.
Я не много понял я изучаю язык python спс за обучение
Массивы в 2 словах:
Итерируемый изменяемый объект фиксированного размера (size), хранящий элементы лишь определённого типа (data type или dtype). Имеет методы, похожие на методы списка, но функционал и скорость куда выше.
Можно использовать специальные интегрированные типы, имеющие определенный размер в памяти с фиксировагным множеством значений.
Сама библиотека numpy - обязательное пособие для каждого питониста.
Раз посмотреть мало для меня надо ещё. Спс не знал отличия и не знал о array. Go видео про numpy
Спасибо за идею :)
Спасибо. Понятнее не стало))
Пересмотрите ещё раз :)
Можно комбинировать также несколько разных видео, чтобы
материал лучше прорабатывался
что за питон такой я имею ввиду его внешний вид подскажите пж что за питон
так разве список в питоне не ссылками наполняется?
Где мне использовать этот массив ?
Интересно. Но про асимптотику ничего :(
Да ещё и последняя программа работает за квадрат, хотя должна линейно.
И вообще, очень странно, что везде (за исключением примеров операций) для создания массива уже используется список, передаваемый в конструктор.
Что касается самих массивов, то я их до сих пор не встречал при изучении (за два месяца). Ни в книгах (Лутц, Свейгарт, укус питона), ни на степике, ни на ютубе.
Может они появились недавно, в новейших версиях)?
Или все же массив это частный случай списка? Больно они похожи.
Потому что для новичков массивы бесполезны
@@user-bn6iu8uk1k а можете подсказать, я правильно понимаю, что массив как и сказал автор ролика, достаточно уместно использовать именно тогда,когда мы знаем что расширяться набор данных не будет, и при этом он будет иметь данные одного типа? Ну то есть, с точки зрения оптимизации памяти и тд, если есть возможность использовать массивы, то лучше юзать их? Просто как пишут люди, и пока я сам лично не начал вникать во все эти штуки со списками, стеками и тд, действительно по шаблону юзал обычный лист и не задумывался. А потом посмотрел видиков с совбесов, а там оказывается спрашивают о таком. Кстати, как оказалось,гибрид из массивов и связных списков тоже крутая штука в некоторых ситуациях.
0:58 А что это за ресурс такой интересный? Ссылочку плиз.
www.w3schools.com/python/python_arrays.asp
@@zproger О, спс =)
for value in a:
if value % 2 == 0:
a[value] = 255 #почему не так в конце?)
print(a)
0:38 А что он, собственно, делает?
Сам сижу и офигиваю от его уровня. Хакерман)
как вывести только парные числа?
не понял, т.е. есть массив [1 2 3 4 5 6] и тебе нужно разделить его на 3 массива по [1 2][3 4][5 6] или одинаковые числа на подобие [2 1 2] - вывод 2?
Шлак какой-то. Не вижу никаких преимуществ в этих примерах. А насчёт потребления памяти там ещё нужно посчитать и поспорить. Если ты в массив (который как-бы концептуально должен быть неизменяемым типом данным с заранее заданным числом элементов) добавляешь новые элементы, то как минимум под капотом будет создаваться его полная копия с добавленным элементом. В то время как при изменении списка это будет происходить не каждое добавление элемента, а лишь иногда, когда он будет переполняться. Кароче тема где именно массивы в питоне лучше списков не раскрыта
Вы больны? Зачем вам добавлять элементы в масссив? Для этого список есть
В конце видео говорил, что цель ролика просто познакомить с новой структурой, я не хотел этим видео показать, что списки нужно выбросить и использовать только массивы. Дело в том, что никто не рассматривает в своих видео данную структуру и многие вообще не знают о её существовании.
И также многие путают списки с массивами, думая что это одно и тоже.
В питоне массивы - шлак т.к. питоно-юзеры в основном занимаются не большими программами(уже давно доказано и разжёвано, что он не подходит для крупных проектов), в другом любом языке на подобие C++ или С# массивы очень нужны т.к. с их помощью легче работать, допустим у тебя есть список и массивы, в список попадают все элементы тобиш булл, инт, стр и т.д. в массивах есть такая вещь если допустим взять число 3 и поделить на 2 он меняет тип данных и массив его уже не пускает, а либо выдает ошибку, либо работает без него и поверь что со списком если он пропустит это, то полностью изменится смысл программы, кншн можно сделать проверку, но как и было сказано в видео массивы работают быстрее по 1 этой причине, так что делай вывод.
где код генератора NFT, уже 700 лайков
Код будет, но 26 января,
так как кто-то накрутил лайки ботами.
Вчера утром было 450 лайков и 500 набралось бы примерно дня за 2,
а сейчас зашел и увидел +370 лайков за пару часов, 70 из которых потом ещё и списали.
так что 26 января всё подготовлю и залью, чтобы больше не крутили в дальнейшем
@@zproger окей, жду
в lua есть только списки, и они такиеже
=)
Говорите складно, но такой мелкий шрифт блин, поймите ютуб смотрят в промежутках времени от основной работы, и обязательно со смартфонов!
В новых видео уже достаточно крупный шрифт
в итоге нет инфы чем же отличаются
Как это нет, а это что тогда?
0:19 - 2:08
@@zproger во 1) вы не раскрыли потенциал массивов по сравнению со списками и как ими удобно пользоваться, вы лишь показали верхушку айсберга. Во 2) мне оч понравилась подача видео, продолжайте в том же духе!
Там разница в хранении данных, списки это связанные списки каждый элемент хранит ссылку на следущий, массив это просто ячейка в которой хранятся значения, соотвественно и разная асимптотическая сложность, в чтении данных масивы быстрее, в добавление или удалении элемента списки быстрее
Автор хотел выпендриться, и на деле не чего полезного, особенно для новечков. Грокаем алгоритмы, самый первый раздел в помощь.
:D
Нахрена так быстро говорить? Чтобы что? ;(
Если хотите кому-то научить, то надо именно учить, т.е. стараться сделать так чтоб у человека хоть небольшая возможность была подумать. А вы бегом бегом бегом и у человека возникает 100500 нажатий на Back чтоб ответить на вопрос "А верно ли я услышал, что ... ?"
Я об этом даже и не подумал, спасибо что подсказали, буду исправляться в след.видео 🙂
@@zproger Спасибо! То что вы стараетесь поделиться знаниями это круто, но очень хочется, чтоб у меня была возможность успевать за вами!Ведь если я пришел на ваш канал,то меня очень волнует та тема, которую вы хотите передать мне. В качестве примера того, как можно доносить информацию программисту программистам можно взять и послушать, здесь в Ютубе курс про асинхронность от Олега Молчанова. Парень очень круто и метко доносит идеи. Используется там где надо паузы, чтоб слушатель чуть чуть подумал. Где-то останавливается и поясняет, что именно он делает. Там где надо указывает источники про использованию того или иного метода или библиотеки.
Попробую изучить его подход, спасибо.
Я и сам когда-то учился по его видео и они были реально эффективными)
RUclips имеет функцию скорости видео можно на 0.75, 0.5 поставить и будешь успевать )
Нормально он всё говорит. Гораздо приятнее слушать, чем тех, кто вместо 10-минутного ролика делает часовой.