11 метода за списък на Python, които трябва да знаете

В този урок ще научите как да използвате списъчни методи на Python за добавяне на елементи към, модифициране и премахване на елементи от списъци на Python.

Когато започвате да програмирате в Python, списъците са една от първите вградени структури от данни, за които ще научите. През следващите няколко минути ще прегледаме основите на списъците на Python и след това ще разгледаме няколко полезни метода за списъци, които можете да използвате, когато работите със списъци.

Нека да започнем!

Общ преглед на списъците на Python

В Python списъкът е колекция от елементи от един и същ или различен тип(ове) данни. Можете да преминете през колекцията, за да получите достъп до елементите, като използвате циклични конструкции, като например for цикли.

Както всички повторяеми елементи на Python, списъците следват нулево индексиране и поддържат операция за нарязване.

Те са променливи колекции, така че можете да ги променяте на място. Това включва добавяне и премахване на елементи от списъка, сортиране на елементите в определен ред, обръщане на реда на елементите и много други. Вградените списъчни методи на Python ви помагат да извършвате тези действия.

След това нека разгледаме някои полезни списъчни методи на Python.

Вградени списъчни методи в Python

В този раздел ще научим някои методи за списъци, които ще бъдат полезни. Ще кодираме примери, за да видим тези списъчни методи в действие.

  5 стъпки за написване на печелившо дизайнерско портфолио

Ще използваме следния списък pgm_langs. Това е списък от низове, съдържащи имената на популярни езици за програмиране.

pgm_langs = ['Python','Go','Rust','JavaScript']

Вмъкване на елементи от списък с insert()

Може да искате да вмъкнете елемент в определен индекс. За да направите това, можете да използвате метода insert(). Извикването на метода на списъка insert() приема:

  • Индексът, на който трябва да бъде вмъкнат елементът, и
  • Елементът за вмъкване.

Нека вмъкнем „Scala“ в индекс 1, използвайки метода index().

pgm_langs = ['Python','Go','Rust','JavaScript']
pgm_langs.insert(1,'Scala')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']

Добавете елемент към списък с append()

Понякога може да се наложи да добавите елемент в края на списъка. За да направите това, можете да използвате метода append().

Нека добавим низа „Java“ в края на списъка с помощта на метода append().

pgm_langs.append('Java')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']

Добавете итерируем с extend()

Знаете, че можете да използвате метода append(), за да добавите един елемент. Но какво ще стане, ако искате да добавите повече от един елемент към съществуващ списък, да речем списък с елементи? Методът extend() осигурява кратък синтаксис за това.

Нека добавим елементите от списъка more_langs към списъка pgm_langs с помощта на метода extend().

more_langs = ['C++','C#','C']
pgm_langs.extend(more_langs)
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']

Можете да преминете през списъка с елементи и да използвате метода append(), за да добавяте един по един елемент. Това обаче е многословно. И е по-удобно вместо това да използвате метода extend().

for lang in more_langs:
    pgm_langs.append(lang)

Обърнете списък с reverse()

За да обърнете реда на елементите в списък, можете да извикате метода reverse().

Виждаме, че списъкът pgm_langs е обърнат на място.

pgm_langs.reverse()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']

Сортирайте списък с sort()

Можете да сортирате списъка на Python на място, като използвате метода sort(). Тъй като pgm_langs е списък от низове, виждаме, че сортирането се извършва по азбучен ред.

pgm_langs.sort()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']

За да сортирате списъка в обратен азбучен ред, можете да зададете обратния параметър на True в извикването на метода sort().

pgm_langs.sort(reverse=True)
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Научете повече за сортирането на списъци на Python.

  11 съвета за работа от вкъщи на Mac

Направете плитко копие с copy()

Понякога може да е полезно да модифицирате копие на оригиналния списък, вместо да модифицирате самия оригинален списък. Методът на списъка copy() връща плитко копие на списъка на Python.

Нека създадем плитко копие на списъка pgm_langs и го наречем pgm_langs_copy. И задаваме първия елемент в списъка на ‘Haskell’ и го отпечатваме.

pgm_langs_copy = pgm_langs.copy()
pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy)
# Output: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Виждаме обаче, че списъкът pgm_langs не е модифициран. Следователно създаването на плитко копие и модифицирането му не променя оригиналния списък.

print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']

Вземете брой артикули с count()

Понякога е полезно да знаете колко пъти даден елемент се появява в списък. Методът count() връща колко пъти даден елемент се появява в списък.

В списъка pgm_langs всички елементи се срещат точно веднъж. Така че, когато се опитаме да получим броя на ‘Go’, получаваме 1, което е правилно.

print(pgm_langs.count('Go'))
# Output: 1

Използването на метода count() е един от начините за премахване на дублирани елементи от списъците на Python.

Вземете индекс на елемент с index()

За да намерите индекса на елемент в списък на Python, можете да използвате метода index(). Да предположим, че бихме искали да намерим индекса на ‘C#’ в списъка pgm_langs. Можем да използваме оператора assert, за да проверим дали елементът с индекс 7 е „C#“.

print(pgm_langs.index('C#'))
# Output: 7
assert pgm_langs[7] == 'C#'

Премахване на елемент в индекс с pop()

Сега нека да разгледаме списъчните методи за премахване на елементи от списъците на Python. Методът pop() се използва за премахване и връщане на елемент при определен индекс. От предишния пример с код знаем, че „C#“ е езикът под индекс 7.

  замени текстовия низ във файла [Guide]

Когато извикаме метода pop() в списъка pgm_langs със 7 като индекс, виждаме, че той връща „C#“, елемента с индекс 7, и също така го премахва от списъка.

print(pgm_langs.pop(7))
# Output: 'C#'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']

Така че методът pop() премахва и връща елемент с посочения индекс. Посочването на индекса обаче не е задължително. Когато не посочите индекса, методът pop() премахва и връща последния елемент в списъка на Python, както е показано:

print(pgm_langs.pop())
# Output: 'C'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']

Премахване на елементи с remove()

Понякога може да знаете кой елемент да премахнете, но не и неговия индекс. В този случай можете да използвате метода remove()—който приема елемент за премахване и го премахва. Нека премахнем „Java“ от списъка pgm_langs с помощта на метода remove(), както е показано.

pgm_langs.remove('Java')
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']

Премахване на всички елементи с clear()

Ами ако искате да премахнете всички елементи от списък на Python? Можете да преминете през списъка и да премахнете всеки елемент с помощта на метода remove(), като този:

for lang in pgm_langs:
    pgm_langs.remove(lang)

Но има ли по-добър начин? Да, използвайки метода clear(). Виждаме, че извикването на метода clear в списъка pgm_langs премахва всички елементи и pgm_langs вече е празен списък.

pgm_langs.clear()
print(pgm_langs)
# Output: []

Резюме на списъчните методи на Python

Нека накратко обобщим различните списъчни методи и техния синтаксис:

List MethodSyntaxDescriptioninsert()list1.insert(index, elt)Вмъква elt в индекса в list1append()list1.append(elt)Добавя elt в края на list1extend()list1.extend(list2)Добавя елементи от list2 в края на list1sort ()list1.sort()Сортира списъка в placereverse()list1.reverse()Обръща списък1 в placecopy()list1.copy()Връща плитко копие на list1count()list1.count(elt)Връща броя на elt в list1index()list1.index(elt)Връща индекс на elt в list1pop()list1.pop(index)Премахва elt при индекс и го връща. remove()list1.remove(elt)Премахва elt от list1clear()list1.clear()Премахва всички елементи от list1

Заключение

Надявам се този урок да ви е помогнал да разберете как да използвате някои от най-разпространените списъчни методи в Python. Като следваща стъпка научете за кортежите на Python и разликите между списъците и кортежите в Python.

Ако изучавате Python, можете да разгледате този списък с подходящи за начинаещи учебни ресурси.