🧾 Метод sort в Python
Метод sort сортирует список по возрастанию значений его элементов.
Рассмотрим пример:
numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
numbers.sort()
print(numbers) # 1
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.sort()
print(fruits) # 2
>>> [2, 3, 9, 11, 78, 100, 567, 1024] # 1
>>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Метод sort сортирует список по возрастанию значений его элементов.
Рассмотрим пример:
numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
numbers.sort()
print(numbers) # 1
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.sort()
print(fruits) # 2
>>> [2, 3, 9, 11, 78, 100, 567, 1024] # 1
>>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Методы, работающие с началом массива в JavaScript
С началом массива работают методы shift и unshift.
Shift удаляет из массива первый элемент и возвращает его:
let fruits = ["Яблоко", "Апельсин", "Груша"];
alert( fruits.shift() ); // удаляем Яблоко и выводим его
alert( fruits ); // Апельсин, Груша
Unshift добавляет элемент в начало массива:
let fruits = ["Апельсин", "Груша"];
fruits.unshift('Яблоко');
alert( fruits ); // Яблоко, Апельсин, Груша
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
С началом массива работают методы shift и unshift.
Shift удаляет из массива первый элемент и возвращает его:
let fruits = ["Яблоко", "Апельсин", "Груша"];
alert( fruits.shift() ); // удаляем Яблоко и выводим его
alert( fruits ); // Апельсин, Груша
Unshift добавляет элемент в начало массива:
let fruits = ["Апельсин", "Груша"];
fruits.unshift('Яблоко');
alert( fruits ); // Яблоко, Апельсин, Груша
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Внутреннее устройство массива (часть 1)
Массив – это особый подвид объектов. Квадратные скобки, используемые для того, чтобы получить доступ к свойству arr[0] – это по сути обычный синтаксис доступа по ключу, как obj[key], где в роли obj у нас arr, а в качестве ключа – числовой индекс.
Массивы расширяют объекты, так как предусматривают специальные методы для работы с упорядоченными коллекциями данных, а также свойство length. Но в основе всё равно лежит объект.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Массив – это особый подвид объектов. Квадратные скобки, используемые для того, чтобы получить доступ к свойству arr[0] – это по сути обычный синтаксис доступа по ключу, как obj[key], где в роли obj у нас arr, а в качестве ключа – числовой индекс.
Массивы расширяют объекты, так как предусматривают специальные методы для работы с упорядоченными коллекциями данных, а также свойство length. Но в основе всё равно лежит объект.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод reverse в Python (часть 1)
Параметр reverse используется для изменения порядка сортировки. По умолчанию этот параметр равен False.
Рассмотрим пример:
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.sort()
print(fruits) # 1
fruits.sort(reverse=True)
print(fruits) # 2
>>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 1
>>> ['Peach', 'Orange', 'Grape', 'Banan', 'Apple'] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Параметр reverse используется для изменения порядка сортировки. По умолчанию этот параметр равен False.
Рассмотрим пример:
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.sort()
print(fruits) # 1
fruits.sort(reverse=True)
print(fruits) # 2
>>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 1
>>> ['Peach', 'Orange', 'Grape', 'Banan', 'Apple'] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод reverse в Python (часть 2)
Также метод reverse используют для переворота списка.
Пример использования:
numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
numbers.reverse()
print(numbers) # 1
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.reverse()
print(fruits) # 2
>>> [78, 567, 1024, 3, 9, 11, 2, 100] # 1
>>> ['Apple', 'Banan', 'Peach', 'Grape', 'Orange'] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Также метод reverse используют для переворота списка.
Пример использования:
numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
numbers.reverse()
print(numbers) # 1
fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
fruits.reverse()
print(fruits) # 2
>>> [78, 567, 1024, 3, 9, 11, 2, 100] # 1
>>> ['Apple', 'Banan', 'Peach', 'Grape', 'Orange'] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод extend в Python
Для объединения двух списков в Python есть полезный метод extend.
Этот метод вызывается для одного списка, а в качестве аргумента ему передается другой список, extend записывает в конец первого из них начало второго:
fruits = ['Banana', 'Apple', 'Grape']
vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
fruits.extend(vegetables)
print(fruits)
>>> ['Banana', 'Apple', 'Grape', 'Tomato', 'Cucumber', 'Potato', 'Carrot']
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Для объединения двух списков в Python есть полезный метод extend.
Этот метод вызывается для одного списка, а в качестве аргумента ему передается другой список, extend записывает в конец первого из них начало второго:
fruits = ['Banana', 'Apple', 'Grape']
vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
fruits.extend(vegetables)
print(fruits)
>>> ['Banana', 'Apple', 'Grape', 'Tomato', 'Cucumber', 'Potato', 'Carrot']
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод clear в Python
В Python для очистки списков используется специальный метод clear.
fruits = ['Banana', 'Apple', 'Grape']
vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
fruits.clear()
vegetables.clear()
print(fruits)
print(vegetables)
>>> [ ]
>>> [ ]
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
В Python для очистки списков используется специальный метод clear.
fruits = ['Banana', 'Apple', 'Grape']
vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
fruits.clear()
vegetables.clear()
print(fruits)
print(vegetables)
>>> [ ]
>>> [ ]
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод index в Python
Метод index возвращает индекс элемента. Вы передаете в качестве аргумента в index значение элемента, а метод возвращает его индекс:
fruits = ['Banana', 'Apple', 'Grape']
print(fruits.index('Apple'))
print(fruits.index('Banana'))
print(fruits.index('Grape'))
>>> 1
>>> 0
>>> 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Метод index возвращает индекс элемента. Вы передаете в качестве аргумента в index значение элемента, а метод возвращает его индекс:
fruits = ['Banana', 'Apple', 'Grape']
print(fruits.index('Apple'))
print(fruits.index('Banana'))
print(fruits.index('Grape'))
>>> 1
>>> 0
>>> 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод copy в Python (часть 1)
Этот метод копирует список и возвращает его брата-близнеца.
Если мы просто присвоим уже существующий список новой переменной, то на первый взгляд всё выглядит неплохо:
fruits = ['Banana', 'Apple', 'Grape']
new_fruits = fruits
print(fruits)
print(new_fruits)
>>> ['Banana', 'Apple', 'Grape']
>>> ['Banana', 'Apple', 'Grape']
Но есть одно но, при прямом присваивании списков копирования не происходит:
fruits = ['Banana', 'Apple', 'Grape']
new_fruits = fruits
fruits.pop()
print(fruits)
print(new_fruits)
# Внезапно, из списка new_fruits исчез последний элемент
>>> ['Banana', 'Apple']
>>> ['Banana', 'Apple']
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Этот метод копирует список и возвращает его брата-близнеца.
Если мы просто присвоим уже существующий список новой переменной, то на первый взгляд всё выглядит неплохо:
fruits = ['Banana', 'Apple', 'Grape']
new_fruits = fruits
print(fruits)
print(new_fruits)
>>> ['Banana', 'Apple', 'Grape']
>>> ['Banana', 'Apple', 'Grape']
Но есть одно но, при прямом присваивании списков копирования не происходит:
fruits = ['Banana', 'Apple', 'Grape']
new_fruits = fruits
fruits.pop()
print(fruits)
print(new_fruits)
# Внезапно, из списка new_fruits исчез последний элемент
>>> ['Banana', 'Apple']
>>> ['Banana', 'Apple']
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод copy в Python (часть 2)
Когда при прямом присваивании списков копирования не происходит, то обе переменные начинают ссылаться на один и тот же список. То есть, если мы изменим один из них, то изменится и другой.
Исправить ситуацию поможет этот же метод – copy:
fruits = ['Banana', 'Apple', 'Grape']
new_fruits = fruits.copy()
fruits.pop()
print(fruits)
print(new_fruits)
>>> ['Banana', 'Apple']
>>> ['Banana', 'Apple', 'Grape']
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Когда при прямом присваивании списков копирования не происходит, то обе переменные начинают ссылаться на один и тот же список. То есть, если мы изменим один из них, то изменится и другой.
Исправить ситуацию поможет этот же метод – copy:
fruits = ['Banana', 'Apple', 'Grape']
new_fruits = fruits.copy()
fruits.pop()
print(fruits)
print(new_fruits)
>>> ['Banana', 'Apple']
>>> ['Banana', 'Apple', 'Grape']
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Метод copy в Python (финал)
Но если у нас список в списке, то внутренний список с помощью метода copy не скопируется:
fruits = ['Banana', 'Apple', 'Grape', ['Orange','Peach']]
new_fruits = fruits.copy()
fruits[-1].pop()
print(fruits) # 1
print(new_fruits) # 2
>>> ['Banana', 'Apple', 'Grape', ['Orange']] # 1
>>> ['Banana', 'Apple', 'Grape', ['Orange']] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Но если у нас список в списке, то внутренний список с помощью метода copy не скопируется:
fruits = ['Banana', 'Apple', 'Grape', ['Orange','Peach']]
new_fruits = fruits.copy()
fruits[-1].pop()
print(fruits) # 1
print(new_fruits) # 2
>>> ['Banana', 'Apple', 'Grape', ['Orange']] # 1
>>> ['Banana', 'Apple', 'Grape', ['Orange']] # 2
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Что такое фронтенд и бэкенд? (часть 1)
Фронтенд веб-сайта — это все, что пользователь видит и с чем он может взаимодействовать при помощи браузера. Создание этой визуальной части называется фронтенд-разработкой.
Для разработки фронтенда в основе базовых инструментов используются: HTML (для создания базовой структуры страниц и контента), CSS (для стилизации внешнего вида) и JavaScript (для добавления интерактивности).
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
Фронтенд веб-сайта — это все, что пользователь видит и с чем он может взаимодействовать при помощи браузера. Создание этой визуальной части называется фронтенд-разработкой.
Для разработки фронтенда в основе базовых инструментов используются: HTML (для создания базовой структуры страниц и контента), CSS (для стилизации внешнего вида) и JavaScript (для добавления интерактивности).
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Что такое фронтенд и бэкенд? (часть 2)
Бэкенд — это серверная часть веб-приложения, скрытая от глаз пользователя. Она включает в себя серверы, на которых расположены веб-страницы и определенную логику, которая управляет функциями и процессами сайта.
Для разработки бэкенд используют: Java, PHP, Ruby, C# и JavaScript.
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
Бэкенд — это серверная часть веб-приложения, скрытая от глаз пользователя. Она включает в себя серверы, на которых расположены веб-страницы и определенную логику, которая управляет функциями и процессами сайта.
Для разработки бэкенд используют: Java, PHP, Ruby, C# и JavaScript.
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Полезные материалы по фронтенду (часть 1)
К таким сервисам относится MDM. Данный ресурс предоставляет информацию обо всех открытых стандартах в веб-технологиях. Этот справочник будет полезен, когда нужно решить проблему и желательно его использовать по требованию.
Все материалы на этом сайте – труд разработчиков со всего мира. Каждый может поучаствовать в расширении базы знаний, в добавлении новой информации.
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
К таким сервисам относится MDM. Данный ресурс предоставляет информацию обо всех открытых стандартах в веб-технологиях. Этот справочник будет полезен, когда нужно решить проблему и желательно его использовать по требованию.
Все материалы на этом сайте – труд разработчиков со всего мира. Каждый может поучаствовать в расширении базы знаний, в добавлении новой информации.
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Полезные материалы по фронтенду (часть 2)
Coolors – это веб-приложение предназначено для выбора подходящей цветовой палитры. После регистрации можно сохранять готовые палитры в таких форматах, как PDF, PNG, SCSS, SVG, или же просто копировать ссылку и пересылать результат.
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
Coolors – это веб-приложение предназначено для выбора подходящей цветовой палитры. После регистрации можно сохранять готовые палитры в таких форматах, как PDF, PNG, SCSS, SVG, или же просто копировать ссылку и пересылать результат.
📋 #Frontend
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Внутреннее устройство массива (часть 2)
В JavaScript массив является объектом и ведёт себя как объект.
Например, копируется по ссылке:
let fruits = ["Банан"]
let arr = fruits; // копируется по ссылке (две переменные ссылаются на один и тот же массив)
alert( arr === fruits ); // true
arr.push("Груша"); // массив меняется по ссылке
alert( fruits ); // Банан, Груша - теперь два элемента
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
В JavaScript массив является объектом и ведёт себя как объект.
Например, копируется по ссылке:
let fruits = ["Банан"]
let arr = fruits; // копируется по ссылке (две переменные ссылаются на один и тот же массив)
alert( arr === fruits ); // true
arr.push("Груша"); // массив меняется по ссылке
alert( fruits ); // Банан, Груша - теперь два элемента
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Внутреннее устройство массива (часть 3)
Движок JavaScript старается хранить элементы массива в непрерывной области памяти, один за другим. Существуют и другие способы оптимизации, благодаря которым массивы работают очень быстро.
Но все они утратят эффективность, если мы перестанем работать с массивом как с «упорядоченной коллекцией данных» и начнём использовать его как обычный объект.
Например, технически мы можем сделать следующее:
let fruits = []; // создаём массив
fruits[99999] = 5; // создаём свойство с индексом, намного превышающим длину массива
fruits.age = 25; // создаём свойство с произвольным именем
Это возможно, потому что в основе массива лежит объект. Мы можем присвоить ему любые свойства.
Но движок поймёт, что мы работаем с массивом, как с обычным объектом. Способы оптимизации, используемые для массивов, в этом случае не подходят, поэтому они будут отключены и никакой выгоды не принесут.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Движок JavaScript старается хранить элементы массива в непрерывной области памяти, один за другим. Существуют и другие способы оптимизации, благодаря которым массивы работают очень быстро.
Но все они утратят эффективность, если мы перестанем работать с массивом как с «упорядоченной коллекцией данных» и начнём использовать его как обычный объект.
Например, технически мы можем сделать следующее:
let fruits = []; // создаём массив
fruits[99999] = 5; // создаём свойство с индексом, намного превышающим длину массива
fruits.age = 25; // создаём свойство с произвольным именем
Это возможно, потому что в основе массива лежит объект. Мы можем присвоить ему любые свойства.
Но движок поймёт, что мы работаем с массивом, как с обычным объектом. Способы оптимизации, используемые для массивов, в этом случае не подходят, поэтому они будут отключены и никакой выгоды не принесут.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Внутреннее устройство массива (финал)
Варианты неправильного применения массива:
Добавление нечислового свойства, например: arr.test = 5.
Создание «дыр», например: добавление arr[0], затем arr[1000] (между ними ничего нет).
Заполнение массива в обратном порядке, например: arr[1000], arr[999] и т.д.
Массив следует считать особой структурой, позволяющей работать с упорядоченными данными. Для этого массивы предоставляют специальные методы. Массивы тщательно настроены в движках JavaScript для работы с однотипными упорядоченными данными, поэтому используйте их именно в таких случаях. Если вам нужны произвольные ключи, возможно, лучше подойдёт обычный объект {}.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Варианты неправильного применения массива:
Добавление нечислового свойства, например: arr.test = 5.
Создание «дыр», например: добавление arr[0], затем arr[1000] (между ними ничего нет).
Заполнение массива в обратном порядке, например: arr[1000], arr[999] и т.д.
Массив следует считать особой структурой, позволяющей работать с упорядоченными данными. Для этого массивы предоставляют специальные методы. Массивы тщательно настроены в движках JavaScript для работы с однотипными упорядоченными данными, поэтому используйте их именно в таких случаях. Если вам нужны произвольные ключи, возможно, лучше подойдёт обычный объект {}.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Эффективность методов массивов
Методы push/pop выполняются быстро, а методы shift/unshift – медленно.
Теперь посмотрим, что происходит во время выполнения:
fruits.shift(); // удаляем первый элемент с начала
Операция shift должна выполнить 3 действия:
1.Удалить элемент с индексом 0.
2.Сдвинуть все элементы влево, заново пронумеровать их, заменив 1 на 0, 2 на 1 и т.д.
3.Обновить свойство length .
Чем больше элементов содержит массив, тем больше времени потребуется для того, чтобы их переместить, больше операций с памятью.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Методы push/pop выполняются быстро, а методы shift/unshift – медленно.
Теперь посмотрим, что происходит во время выполнения:
fruits.shift(); // удаляем первый элемент с начала
Операция shift должна выполнить 3 действия:
1.Удалить элемент с индексом 0.
2.Сдвинуть все элементы влево, заново пронумеровать их, заменив 1 на 0, 2 на 1 и т.д.
3.Обновить свойство length .
Чем больше элементов содержит массив, тем больше времени потребуется для того, чтобы их переместить, больше операций с памятью.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
🧾 Задачи по спискам Python (часть 1)
Начнём с решения более простых задач.
1. Создайте список из 10 четных чисел и выведите его с помощью цикла for.
2. Создайте список из 5 элементов. Сделайте срез от второго индекса до четвертого.
3. Создайте пустой список и добавьте в него 10 случайных чисел и выведите их. В данной задаче нужно использовать функцию randint:
from random import randint
n = randint(1, 10) # Случайное число от 1 до 10
4.Удалите все элементы из списка, созданного в задании 3.
5. Создайте список из введенной пользователем строки и удалите из него символы 'a', 'e', 'o'.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev
Начнём с решения более простых задач.
1. Создайте список из 10 четных чисел и выведите его с помощью цикла for.
2. Создайте список из 5 элементов. Сделайте срез от второго индекса до четвертого.
3. Создайте пустой список и добавьте в него 10 случайных чисел и выведите их. В данной задаче нужно использовать функцию randint:
from random import randint
n = randint(1, 10) # Случайное число от 1 до 10
4.Удалите все элементы из списка, созданного в задании 3.
5. Создайте список из введенной пользователем строки и удалите из него символы 'a', 'e', 'o'.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To WebDev