Перейти до змісту

Корисні методи для роботи зі списками

Список є змінним типом даних, тому важливо звернути увагу на те, що більшість методів списку змінюють список на місці, не повертаючи нічого.

append

Метод append додає до кінця списку зазначений елемент:

In [18]: vlans = ['10', '20', '30', '100']

In [19]: vlans.append('300')

In [20]: vlans
Out[20]: ['10', '20', '30', '100', '300']

Метод append змінює список на місці та нічого не повертає. Якщо у скрипті треба додати елемент до списку, а потім вивести список print, треба робити це на різних рядках коду.

vlans = ['10', '20', '30', '100']
vlans.append('300')
print(vlans)

Якщо зробити print(vlans.append('300')), результатом буде вивід None.

extend

Якщо потрібно об'єднати два списки, можна використовувати два способи: метод extend і операцію складання.

У цих способів є важлива відмінність - extend змінює список, до якого застосовано метод, а додавання повертає новий список, що складається з двох.

Метод extend:

In [21]: vlans = ['10', '20', '30', '100']

In [22]: vlans2 = ['300', '400', '500']

In [23]: vlans.extend(vlans2)

In [24]: vlans
Out[24]: ['10', '20', '30', '100', '300', '400', '500']

Додавання списків:

In [27]: vlans = ['10', '20', '30', '100']

In [28]: vlans2 = ['300', '400', '500']

In [29]: vlans + vlans2
Out[29]: ['10', '20', '30', '100', '300', '400', '500']

Зверніть увагу, що під час підсумовування списків в ipython з'явився рядок Out. Це означає, що результат підсумовування можна присвоїти у змінну:

In [30]: result = vlans + vlans2

In [31]: result
Out[31]: ['10', '20', '30', '100', '300', '400', '500']

pop

Метод pop видаляє елемент, який відповідає вказаному індексу і повертає цей елемент:

In [28]: vlans = ['10', '20', '30', '100']

In [29]: vlans.pop(-1)
Out[29]: '100'

In [30]: vlans
Out[30]: ['10', '20', '30']

Без зазначення індексу видаляється останній елемент списку.

remove

Метод remove видаляє вказаний елемент. Remove не повертає видалений елемент:

In [31]: vlans = ['10', '20', '30', '100']

In [32]: vlans.remove('20')

In [33]: vlans
Out[33]: ['10', '30', '100']

Якщо вказати неіснуючий елемент, виникне помилка:

In [34]: vlans.remove(500)
-------------------------------------------------
ValueError      Traceback (most recent call last)
<ipython-input-32-f4ee38810cb7> in <module>()
----> 1 vlans.remove(500)

ValueError: list.remove(x): x not in list

index

Метод index повертає індекс, під яким знаходиться вказаний елемент

In [35]: vlans = ['10', '20', '30', '100']

In [36]: vlans.index('30')
Out[36]: 2

insert

Метод insert дозволяє вставити елемент на певне місце у списку:

In [37]: vlans = ['10', '20', '30', '100']

In [38]: vlans.insert(1, '15')

In [39]: vlans
Out[39]: ['10', '15', '20', '30', '100']

sort

Метод sort сортує список на місці:

In [40]: vlans = [1, 50, 10, 15]

In [41]: vlans.sort()

In [42]: vlans
Out[42]: [1, 10, 15, 50]