Полезные методы для работы со списками#
Список - это изменяемый тип данных, поэтому очень важно обращать внимание на то, что большинство методов для работы со списками меняют список на месте, при этом ничего не возвращая.
append
#
Метод append
добавляет в конец списка указанный элемент:
In [18]: vlans = ['10', '20', '30', '100-200']
In [19]: vlans.append('300')
In [20]: vlans
Out[20]: ['10', '20', '30', '100-200', '300']
Метод append меняет список на месте и ничего не возвращает. Если в скрипте надо добавить элемент в список, а потом вывести список print, надо делать это на разных строках кода.
extend
#
Если нужно объединить два списка, то можно использовать два способа:
метод extend
и операцию сложения.
У этих способов есть важное отличие - extend меняет список, к которому применен метод, а суммирование возвращает новый список, который состоит из двух.
Метод extend:
In [21]: vlans = ['10', '20', '30', '100-200']
In [22]: vlans2 = ['300', '400', '500']
In [23]: vlans.extend(vlans2)
In [24]: vlans
Out[24]: ['10', '20', '30', '100-200', '300', '400', '500']
Суммирование списков:
In [27]: vlans = ['10', '20', '30', '100-200']
In [28]: vlans2 = ['300', '400', '500']
In [29]: vlans + vlans2
Out[29]: ['10', '20', '30', '100-200', '300', '400', '500']
Обратите внимание на то, что при суммировании списков в ipython появилась строка Out. Это означает, что результат суммирования можно присвоить в переменную:
In [30]: result = vlans + vlans2
In [31]: result
Out[31]: ['10', '20', '30', '100-200', '300', '400', '500']
pop
#
Метод pop
удаляет элемент, который соответствует указанному
номеру. Но, что важно, при этом метод возвращает этот элемент:
In [28]: vlans = ['10', '20', '30', '100-200']
In [29]: vlans.pop(-1)
Out[29]: '100-200'
In [30]: vlans
Out[30]: ['10', '20', '30']
Без указания номера удаляется последний элемент списка.
remove
#
Метод remove
удаляет указанный элемент.
remove() не возвращает удаленный элемент:
In [31]: vlans = ['10', '20', '30', '100-200']
In [32]: vlans.remove('20')
In [33]: vlans
Out[33]: ['10', '30', '100-200']
В методе remove надо указывать сам элемент, который надо удалить, а не его номер в списке. Если указать номер элемента, возникнет ошибка:
In [34]: vlans.remove(-1)
-------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-32-f4ee38810cb7> in <module>()
----> 1 vlans.remove(-1)
ValueError: list.remove(x): x not in list
index
#
Метод index
используется для того, чтобы проверить, под каким
номером в списке хранится элемент:
In [35]: vlans = ['10', '20', '30', '100-200']
In [36]: vlans.index('30')
Out[36]: 2
insert
#
Метод insert
позволяет вставить элемент на определенное место в
списке:
In [37]: vlans = ['10', '20', '30', '100-200']
In [38]: vlans.insert(1, '15')
In [39]: vlans
Out[39]: ['10', '15', '20', '30', '100-200']
sort
#
Метод sort сортирует список на месте:
In [40]: vlans = [1, 50, 10, 15]
In [41]: vlans.sort()
In [42]: vlans
Out[42]: [1, 10, 15, 50]