Работа со списками в python

Алан-э-Дейл       30.08.2023 г.

Содержание

Python List sort() method

The Python list sort() method is used to sort the list in ascending order by default it, doesn’t require an extra parameter to sort.

Example:

After writing the above code (python list clear), Ones you will print “bike” then the output will appear as a “ ”. Here, it sort the list in ascending order. You can refer to the below screenshot for creating a python list count() method


Python List sort() method

You can also use the built-in sort() method to sort() it in descending order. By giving the parameters “reverse=True”.

Example:

You can refer to the below screenshot for creating a python list sort() method for descending order.

The sort() method is also used to sort the list by the length of the value present in the list.

Example:

You can refer to the below screenshot for creating a python list sort() method to arrange the element according to the length of the value.

Методы списков

len()

Метод возвращает длину объекта (списка, строки, кортежа или словаря).

принимает один аргумент, который может быть или последовательностью (например, строка, байты, кортеж, список, диапазон), или коллекцией (например, словарь, множество, frozenset).

list1 =   # список
print(len(list1)) # в списке 3 элемента, в выводе команды будет "3"

str1 = 'basketball'  # строка
print(len(str1))  # в строке 9 букв, в выводе команды будет "9"

tuple1 = (2, 3, 4, 5)  # кортеж
print(len(tuple1))  # в кортеже 4 элемента, в выводе команды будет "4"

dict1 = {'name': 'John', 'age': 4, 'score': 45} # словарь
print(len(dict1))  # в словаре 3 пары ключ-значение, в выводе команды будет "3"

index()

возвращает индекс элемента. Сам элемент передается методу в качестве аргумента. Возвращается индекс первого вхождения этого элемента (т. е., если в списке два одинаковых элемента, вернется индекс первого).

numbers = 
words = 

print(numbers.index(9)) # 4
print(numbers.index(2)) # 1
print(words.index("I")) # 0
print(words.index("JavaScript")) # возвращает ValueError, поскольку 'JavaScript' в списке 'words' нет

Первый результат очевиден. Второй и
третий output демонстрируют возврат индекса
именно первого вхождения.

Цифра «2» встречается в списке дважды,
первое ее вхождение имеет индекс 1,
второе — 2. Метод index() возвращает индекс
1.

Аналогично возвращается индекс 0 для элемента «I».

Если элемент, переданный в качестве аргумента, вообще не встречается в списке, вернется ValueError. Так получилось с попыткой выяснить индекс «JavaScript» в списке .

Опциональные аргументы

Чтобы ограничить поиск элемента
конкретной подпоследовательностью,
можно использовать опциональные
аргументы.

words = 
print(words.index("am", 2, 5)) # 4

Метод index() будет искать элемент «am» в диапазоне от элемента с индексом 2 (включительно) до элемента с индексом 5 (этот последний элемент не входит в диапазон).

При этом возвращаемый индекс — индекс
элемента в целом списке, а не в указанном
диапазоне.

pop()

Метод удаляет и возвращает последний элемент списка.

Этому методу можно передавать в качестве параметра индекс элемента, который вы хотите удалить (это опционально). Если конкретный индекс не указан, метод удаляет и возвращает последний элемент списка.

Если в списке нет указанного вами индекса, метод выбросит exception .

cities = 

print "City popped is: ", cities.pop() # City popped is: San Francisco
print "City at index 2 is  : ", cities.pop(2) # City at index 2 is: San Antonio

Базовый функционал стека

Для реализации базового функционала
стека в программах на Python часто
используется связка метода pop() и метода
append():

stack = []

for i in range(5):
    stack.append(i)

while len(stack):
    print(stack.pop())

Delete/Remove List Elements

We can delete one or more items from a list using the Python del statement. It can even delete the list entirely.

Output



Traceback (most recent call last):
  File "<string>", line 18, in <module>
NameError: name 'my_list' is not defined

We can use to remove the given item or to remove an item at the given index.

The method removes and returns the last item if the index is not provided. This helps us implement lists as stacks (first in, last out data structure).

And, if we have to empty the whole list, we can use the method.

Output


o

m

[]

Finally, we can also delete items in a list by assigning an empty list to a slice of elements.

Списки Python

Список — это наиболее универсальный тип данных, доступный в Python, который можно записать в виде списка значений (элементов), разделенных запятыми, в квадратных скобках. Важным моментом в списке является то, что элементы в списке не обязательно должны быть одного типа.

Создать список просто — необходимо поставить различные значения через запятую в квадратных скобках. Например:

list1 = ;
list2 = ;
list3 = 

Подобно строковым индексам, индексы списков начинаются с 0. Списки могут быть нарезаны, объединены и т.д.

Доступ к значениям в списках

Чтобы получить доступ к значениям в списках, используйте квадратные скобки для нарезки вместе с индексом или индексами, чтобы получить значение, доступное по этому индексу. Например —

list1 = ;
list2 = ;
print("list1: ", list1)
print("list2: ", list2)

Когда приведенный выше код выполняется, он дает следующий результат —

list1:  physics
list2:  

Обновление списков

Вы можете обновить один или несколько элементов списков, предоставив срез в левой части оператора присваивания, а также добавить элементы в список с помощью метода append (). Например —

list = ;
print "Value available at index 2 : "
print list
list = 2001;
print "New value available at index 2 : "
print list

Примечание. Метод append () обсуждается в следующем разделе.

Когда приведенный выше код выполняется, он дает следующий результат —

Value available at index 2 :
1997
New value available at index 2 :
2001

Удалить элементы списка

Чтобы удалить элемент списка, вы можете использовать либо оператор del, если вы точно знаете, какие элементы вы удаляете, либо метод remove (), если вы не знаете. Например —

list1 = ;
print list1
del list1;
print "After deleting value at index 2 : "
print list1

Когда приведенный выше код выполняется, он дает следующий результат —

After deleting value at index 2 :

Примечание. Метод remove () обсуждается в следующем разделе.

Основные операции со списком

Списки реагируют на операторы + и * так же, как строки; здесь они также означают конкатенацию и повторение, за исключением того, что результатом является новый список, а не строка.

Фактически списки отвечают на все общие операции последовательности, которые мы использовали со строками в предыдущей главе.

Python Expression Результаты Описание
len() 3 Length — длина
+ Concatenation — конкатенация
* 4 Repetition — Повторение
3 in True Membership — членство
for x in : print x, 1 2 3 Iteration — итерация

Индексирование, нарезка и матрицы

Поскольку списки являются последовательностями, индексирование и нарезка для списков работают так же, как и для строк.

Предполагая следующий ввод —

L = 
Выражение Python Результаты Описание
L SPAM! Смещения начинаются с нуля
L Spam Отрицательный: считать справа
L Нарезка выборок разделов

Встроенные функции и методы списка

Python включает в себя следующие функции списка —

Функция с описанием
1

cmp(list1, list2)

Сравнивает элементы обоих списков.

2

len(list)

Дает общую длину списка.

3

max(list)

Возвращает элемент из списка с максимальным значением.

4

min(list)

Возвращает элемент из списка с минимальным значением.

5

list(seq)

Преобразует кортеж в список.

Python включает следующие методы списка

Методы с описанием
1

list.append(obj)

Добавляет объект obj в список

2

list.count(obj)

Возвращает количество раз, сколько obj встречается в списке

3

list.extend(seq)

Добавляет содержимое seq в список

4

list.index(obj)

Возвращает самый низкий индекс в списке, который появляется obj

5

list.insert(index, obj)

Вставляет объект obj в список по индексу смещения

6

list.pop(obj=list)

Удаляет и возвращает последний объект или объект из списка

7

list.remove(obj)

Удаляет объект obj из списка

8

list.reverse()

Переворачивает объекты списка на месте

9

list.sort()

Сортирует объекты списка, используйте функцию сравнения, если дано

List pop() в стеке Python

Как мы видели в нашем руководстве по Python Stack Tutorial, pop() также является операцией стека, используемой для удаления последней переданной задачи или элемента. Давайте посмотрим, как мы можем реализовать метод list pop() в стеке с помощью списков.

stack=[] #declare a stack

print("Pushing tasks into stack...")
for i in range(5):
    stack.append(i)

print("stack=",stack)

print("Poping tasks from stack:")
#performing repetitive pop() on stack
while len(stack)>0:
    print("pop()=",stack.pop(),";  Currently in Stack:",stack)

Вывод:

После объявления списка стека мы нажимаем 5 элементов, непрерывно отправляя задачи (элементы) с помощью метода append().
Как только наша инициализация стека завершена, мы повторяем элементы pop(), пока стек не станет пустым.
Обратите внимание, что при извлечении элементов из стека мы использовали условие len (stack)> 0 с помощью цикла while. Это гарантирует, что операция pop выполняется только тогда, когда стек не пуст.

Пользовательская логика для сортировки списка

Мы также можем реализовать вашу собственную логику для сортировки элементов списка.

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

Но есть такая поговорка: «Сначала дамы!». Итак, мы хотим отсортировать наш список таким образом, чтобы женский пол имел приоритет над мужским. Если пол двух человек совпадает, младший получает более высокий приоритет.

Итак, мы должны использовать ключевой аргумент в нашей функции сортировки. Но функцию сравнения нужно преобразовать в ключ.

Итак, нам нужно импортировать библиотеку под названием functools. Мы будем использовать функцию cmp_to_key(), чтобы преобразовать compare_function в key.

import functools


def compare_function(person_a, person_b):
    if person_a == person_b:  # if their gender become same
        return person_a - person_b  # return True if person_a is younger
    else:  # if their gender not matched
        if person_b == 'F':  # give person_b first priority if she is female
            return 1
        else:  # otherwise give person_a first priority
            return -1

persons = , , , ]

print(f'Before sorting: {persons}')

persons.sort(key=functools.cmp_to_key(compare_function))

print(f'After sorting: {persons}')

Вывод:

Before sorting: , , , ]
After sorting: , , , ]

Список сначала сортируется по полу. Затем он сортируется по возрасту людей.

Повторите список в Python С Помощью Модуля Numpy

Третий способ перебора списка в Python – это использование модуля Numpy. Для достижения нашей цели с помощью этого метода нам нужны два метода numpy, которые упоминаются ниже:

  1. numpy.nditer()
  2. numpy.arange()

Iterator object nditer предоставляет множество гибких способов итерации по всему списку с помощью модуля numpy. Функция href=”http://numpy.org/doc/stable/reference/generated/numpy.nditer.html”>nditer() – это вспомогательная функция, которая может использоваться от очень простых до очень продвинутых итераций. Это упрощает некоторые фундаментальные проблемы, с которыми мы сталкиваемся в итерации. href=”http://numpy.org/doc/stable/reference/generated/numpy.nditer.html”>nditer() – это вспомогательная функция, которая может использоваться от очень простых до очень продвинутых итераций. Это упрощает некоторые фундаментальные проблемы, с которыми мы сталкиваемся в итерации.

Нам также нужна другая функция для перебора списка в Python с помощью numpy, которая является numpy.arrange().numpy.arange возвращает равномерно распределенные значения в пределах заданного интервала. Значения генерируются в пределах полуоткрытого интервала [start, stop) (другими словами, интервала, включающего start, но исключающего stop).

Синтаксис:

Синтаксис numpy.nditer()

Синтаксис numpy.arrange()

  • start: Параметр start используется для предоставления начального значения массива.
  • stop: Этот параметр используется для предоставления конечного значения массива.
  • шаг: Он обеспечивает разницу между каждым целым числом массива и генерируемой последовательностью.

Объяснение

В приведенном выше примере 1 программа np.arange(10) создает последовательность целых чисел от 0 до 9 и сохраняет ее в переменной x. После этого мы должны запустить цикл for, и, используя этот цикл for и np.nditer(x), мы будем перебирать каждый элемент списка один за другим.

Пример 2:

В этом примере мы будем итерировать 2d-массив с помощью модуля numpy. Для достижения нашей цели нам здесь нужны три функции.

  1. numpy.arange()
  2. numpy.reshape()
  3. numpy.nditer()
import numpy as np
.arange(16) .reshape(4, 4) 
for x in np.nditer(a): 
	print(x)

Объяснение:

Большая часть этого примера похожа на наш первый пример, за исключением того, что мы добавили дополнительную функцию numpy.reshape(). Функция numpy.reshape() обычно используется для придания формы нашему массиву или списку. В основном на непрофессиональном языке он преобразует размеры массива-как в этом примере мы использовали функцию reshape(), чтобы сделать массив numpy 2D-массивом.

Создание словаря

Словарь можно создать, используя несколько пар ключ-значение, заключенных в фигурные скобки {}, и каждый ключ отделяется от своего значения двоеточием(:). Синтаксис для определения словаря приведен ниже.

Синтаксис:

Dict = {"Name": "Tom", "Age": 22}  

В приведенном выше словаре Dict ключи Name и Age представляют собой строку, которая является неизменяемым объектом.

Давайте посмотрим, как создать словарь и напечатать его содержимое.

Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}  
print(type(Employee))  
print("printing Employee data .... ")  
print(Employee)  

Выход:

<class 'dict'>
Printing Employee data .... 
{'Name': 'John', 'Age': 29, 'salary': 25000, 'Company': 'GOOGLE'}

Python предоставляет встроенный метод функции dict(), который также используется для создания словаря. Пустые фигурные скобки {} используются для создания пустого словаря.

# Creating an empty Dictionary 
Dict = {} 
print("Empty Dictionary: ") 
print(Dict) 

# Creating a Dictionary 
# with dict() method 
Dict = dict({1: 'Java', 2: 'T', 3:'Point'}) 
print("\nCreate Dictionary by using  dict(): ") 
print(Dict) 

# Creating a Dictionary 
# with each item as a Pair 
Dict = dict() 
print("\nDictionary with each item as a pair: ") 
print(Dict)

Выход:

Empty Dictionary: 
{}

Create Dictionary by using dict(): 
{1: 'Java', 2: 'T', 3: 'Point'}

Dictionary with each item as a pair: 
{1: 'Devansh', 2: 'Sharma'}

Метод 4: Python One-Liner Solution

Я люблю Python One-listers (Вот почему я написал книга о них ). Можем ли мы решить множественную задачу замены в одной строке? Да, конечно!

lst = 
repl = 
indices = 

# Method 4: Python One-Liner
lst =  if i in indices else lst for i in range(len(lst))]
print(lst)
# 
  • Мы используем Понимание списка Чтобы повторить все индексы от 0 до Длина списка Отказ
  • Мы используем Тернарный оператор Чтобы проверить, является ли этот индекс, который должен быть заменен.
  • Если индекс не должен быть заменен, верните исходный элемент, иначе верните замену элемента.
  • Мы используем Способ выяснить индекс элемента для замены элемента исходного списка.

Не очень красиво, не так ли? Если вы все еще хотите узнать, как работают одноклассники, ознакомьтесь с моей книгой:

Python counting list elements

Sometimes it is important to count list elements. For this,
Python has the method.

counting.py

#!/usr/bin/env python

# counting.py

n = 

print(n.count(4))
print(n.count(1))
print(n.count(2))
print(n.count(6))

In this example, we count the number of occurrences of a few numbers
in the list.

n = 

We have a list of integer numbers. Integers 1 and 4 are present multiple times.

print(n.count(4))
print(n.count(1))
print(n.count(2))
print(n.count(6))

Using the method, we find out the occurrence
of 4, 1, 2, and 6 numbers.

$ ./counting.py
3
2
1
0

Number 4 is present 3 times, 1 twice, 2 once, and 6 is not
present in the list.

Python sequence functions

Sequence functions can be used on any sequence types, including lists.

sequence_funs.py

#!/usr/bin/env python

# sequence_funs.py

n = 

print("There are {0} items".format(len(n)))
print("Maximum is {0}".format(max(n)))
print("Minimum is {0}".format(min(n)))
print("The sum of values is {0}".format(sum(n)))

In the example above, we have four functions: , ,
, and .

print("There are {0} items".format(len(n)))

The function returns the size of the list. The number of
elements of the list.

print("Maximum is {0}".format(max(n)))
print("Minimum is {0}".format(min(n)))

The and functions return the maximum
and the minimum of the list.

print("The sum of values is {0}".format(sum(n)))

The function calculates the sum of the numbers
of the list.

$ ./sequence_funs.py
There are 8 items
Maximum is 8
Minimum is 1
The sum of values is 36

This is the output.

Python list operations

The following code shows some basic list operations.

list_oper.py

#!/usr/bin/env python

# list_oper.py

n1 = 
n2 = 

print(n1 == n2)
print(n1 + n2)

print(n1 * 3)

print(2 in n1)
print(2 in n2)

We define two lists of integers. We use a few operators on these lists.

print(n1 == n2)

The contents of the lists are compared with the
operator. The line prints since the elements are different.

print(n1 + n2)

The and lists are added to form a
new list. The new list has all elements of both the lists.

print(n1 * 3)

We use the multiplication operator on the list. It repeats the elements
n times; three times in our case.

print(2 in n1)

We use the operator to find out whether the value is present
in the list. It returns a boolean or .

$ ./lists.py
False


True
False

Running the example gives this output.

Методы списков в Python

Помимо уже названных встроенных функций Python имеет еще и несколько специальных методов для работы со списками. С помощью этих методов можно осуществлять разные полезные операции.

Давайте подумаем о списках покупок. Какие операции мы с ними проделываем чаще всего?

  • Добавляем элементы (по одному или несколько сразу)
  • Удаляем элементы
  • Меняем порядок элементов.

Как добавлять элементы в список

Мы можем добавлять элементы, вставляя их по одному в конец списка. Это делается при помощи метода . Давайте добавим в наш .

shopping_list.append('grapes')
print(shopping_list)

>> 

Что, если бы мы захотели добавить в список элементы из другого списка (или другого итерируемого объекта)? Вместо того чтобы добавлять их по одному, мы можем воспользоваться методом и добавить все элементы одного объекта в другой.

shopping_list.extend()
print(shopping_list)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars', 'cheese'

Примечание. Есть существенная разница между методами и и оператором конкатенации .

Оператор создает новый список, комбинируя списки, указанные в качестве операндов. А методы и изменяют список, для которого они вызваны, и не возвращают новых списков.

Как удалять элементы из списка

Мы можем удалять элементы из списка по одному или даже группами.

Метод возвращает последний элемент списка и удаляет его, как показано ниже. Последним элементом в списке был , а после применения метода его не стало.

last_element = shopping_list.pop()
print(shopping_list)
print(last_element)
# Вывод
>> 
>> cheese

Если бы мы хотели удалить элемент под определенным индексом, этот индекс можно было бы передать в метод в качестве аргумента.

not_needed = shopping_list.pop(2)
print(not_needed)
# Вывод
>> candy

Если нам не нужен доступ к значению удаляемого элемента, можно воспользоваться функцией .

При этом можно указать как индекс элемента, который нужно удалить, так и срез — чтобы удалить все элементы в указанном диапазоне.

del shopping_list
print(shopping_list)
# Вывод
>> 

Предположим, мы знаем, какой именно товар в списке покупок мы передумали покупать, но не знаем, какой у него индекс. В подобных случаях можно воспользоваться методом и удалить элемент по значению.

В нашем примере элемент под индексом 1 — это . Если бы мы не знали индекс , мы могли бы просто написать и получить такой же результат, как в примере кода выше.

Для удаления всех элементов из списка можно использовать .

Примечание. При попытке удалить элемент, которого нет в списке, мы получим ValueError.

Python List Methods

Python has many useful list methods that makes it really easy to work with lists. Here are some of the commonly used list methods.

Methods Descriptions
append() adds an element to the end of the list
extend() adds all elements of a list to another list
insert() inserts an item at the defined index
remove() removes an item from the list
pop() returns and removes an element at the given index
clear() removes all items from the list
index() returns the index of the first matched item
count() returns the count of the number of items passed as an argument
sort() sort items in a list in ascending order
reverse() reverse the order of items in the list
copy() returns a shallow copy of the list

Стилевое оформление

Для настройки шрифтов, используемых в ячейках, необходимо импортировать функцию из модуля :

from openpyxl.styles import Font

Ниже приведен пример создания новой рабочей книги, в которой для шрифта, используемого в ячейке , устанавливается шрифт , красный цвет, курсивное начертание и размер 24 пункта:

import openpyxl
from openpyxl.styles import Font

# создаем новый excel-файл
wb = openpyxl.Workbook()
# добавляем новый лист
wb.create_sheet(title = 'Первый лист', index = )
# получаем лист, с которым будем работать
sheet = wb'Первый лист'

font = Font(name='Arial', size=24, italic=True, color='FF0000')
sheet'A1'.font = font
sheet'A1' = 'Здравствуй мир!'

# записываем файл
wb.save('example.xlsx')

Именованные стили применяются, когда надо применить стилевое оформление к большому количеству ячеек.

import openpyxl
from openpyxl.styles import NamedStyle, Font, Border, Side

# создаем новый excel-файл
wb = openpyxl.Workbook()
# добавляем новый лист
wb.create_sheet(title = 'Первый лист', index = )
# получаем лист, с которым будем работать
sheet = wb'Первый лист'

# создаем именованный стиль
ns = NamedStyle(name='highlight')
ns.font = Font(bold=True, size=20)
border = Side(style='thick', color='000000')
ns.border = Border(left=border, top=border, right=border, bottom=border)

# вновь созданный именованный стиль надо зарегистрировать
# для дальнейшего использования
wb.add_named_style(ns)

# теперь можно использовать именованный стиль
sheet'A1'.style = 'highlight'

# записываем файл
wb.save('example.xlsx')

Python indexing list elements

Elements in a Python list can be accessed by their index. Index
numbers are integers; they start from zero. Indexes can be negative; negative indexes
refer to elements from the end of the list. The first item in a list has index 0,
the last item has -1.

indexing.py

#!/usr/bin/env python

# indexing.py

n = 

print(n)
print(n)
print(n)

print(n)
print(n)

We can access an element of a list by its index. The index is placed between the
square brackets after the name of the list.

print(n)
print(n)
print(n)

These three lines print the first, the last and the last but one item of the
list.

print(n)
print(n)

The two lines print the fourth and sixth element of the list.

$ ./indexing.py
1
8
7
4
6

This is example output.

The method looks for a particular element and
returns its lowest index. The start and end are optional parameters that limit the
search to given boundaries.

indexing2.py

#!/usr/bin/env python

# indexing2.py

n = 

print(n.index(1))
print(n.index(2))

print(n.index(1, 1))
print(n.index(2, 2))

print(n.index(1, 2, 5))
print(n.index(3, 4, 8))

A code example with the method.

print(n.index(1))
print(n.index(2))

These two lines print the indexes of the leftmost 1, 2 values of
the n list.

print(n.index(1, 1))
print(n.index(2, 2))

Here we search for values 1 and 2 after specified indexes.

print(n.index(1, 2, 5))

Here we search for value 1 between values with indexes 2 and 5.

$ ./indexing2.py
0
1
4
5
4
6

This is example output.

Вопрос 9. Чем список отличается от других структур?

Сложность: (> ⌒ <)

Такие вопросы надо отбивать особенно чётко. Если спрашивающий не услышит конкретные ключевые слова, его подозрительность повысится, а ваши шансы, наоборот, снизятся.

Список и кортеж (tuple)

Список можно менять после создания (например, с помощью функции append()), а кортеж нет: он защищает данные от изменений после создания. По этой причине кортеж можно использовать в качестве ключа в словарях, а список нельзя. Кроме того, кортеж обрабатывается интерпретатором Python чуть быстрее.

Список и множество (set)

Список упорядочен: каждый элемент списка имеет индекс, а элемент множества — нет. Список может содержать одинаковые значения, а во множестве каждое значение уникально. Проверка, принадлежит ли элемент множеству, выполняется быстрее, чем такая же проверка элемента списка.

Список и словарь (dictionary)

Словарь состоит из пар «ключ-значение», а список может состоять и из одиночных элементов, и из пар, и из троек — если элементами будут другие списки или кортежи. Ключи у словаря должны быть уникальными и иметь неизменяемый тип, у списка таких ограничений нет. Поиск по словарю быстрее, чем по списку.

Список и массив (array)

Для использования массива нужно вызывать библиотеку array, а списки встроены в Python. В массиве могут содержаться элементы только одного типа. Массив не может содержать другие массивы или списки. Массив занимает меньше памяти и поэтому быстрее, чем одномерный список.

? Использование конструктора list ()

В качестве альтернативы вы можете создать пустой список с помощью конструктора типа , который создает новый объект списка.

Согласно документации Python:

Совет: это создает новый объект списка в памяти, и, поскольку мы не передали никаких аргументов , будет создан пустой список.

Например:

Этот пустой список будет иметь длину , как вы можете видеть прямо здесь:

И это ложное значение, когда оно пусто (оно оценивается в логическом контексте):

Пример:

Это полностью функциональный список, поэтому мы можем добавлять в него элементы:

И результатом будет непустой список, как вы можете видеть прямо здесь:

Гость форума
От: admin

Эта тема закрыта для публикации ответов.