Рубрики
Без рубрики

Список Python Append VS Python List Extend – разница, объясненная примерами метода массива

Автор оригинала: Estefania Cassingena Navone.

🔹 Добро пожаловать

Если вы хотите узнать, как работать с .append () и .exend () И понять их различия, тогда вы пришли в нужное место. Они являются мощными способами списка, которые вы обязательно будете использовать в ваших проектах Python.

В этой статье вы узнаете:

  • Как и когда использовать .append () метод.
  • Как и когда использовать .exend () метод.
  • Их основные различия.

Давайте начнем. ✨.

🔸 добавить

Давайте посмотрим, как .append () Метод работает за кулисами.

Сценарии использования

Вы должны использовать этот метод, когда вы хотите Добавьте один элемент до конца списка.

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

Синтаксис и аргументы

Позвонить в .append () Метод, вам нужно будет использовать этот синтаксис:

Слева направо:

  • Список, который будет изменен. Обычно это переменная, которая ссылается на список.
  • Точка, а затем имя метода .append () Отказ
  • В скобках элемент, который будет добавлен в конец списка.

💡 Советы: Точка очень важна. Это называется «точечная запись». Точка в основном говорит «Вызов этого метода в этом конкретном списке», поэтому эффект метода будет применен к списку, который находится перед точкой.

Примеры

Вот пример того, как использовать .append () :

# Define the list
>>> nums = [1, 2, 3, 4]

# Add the integer 5 to the end of the existing list
>>> nums.append(5)

# See the updated value of the list
>>> nums
[1, 2, 3, 4, 5]

💡 Советы: Когда вы используете .append () Оригинальный список изменен. Способ не создает копию списка – она мутирует исходный список в памяти.

Давайте притворяться, что мы ведем исследование, и что мы хотим проанализировать данные, собранные с помощью Python. Нам нужно добавить новое измерение в существующий список значений.

Как мы делаем это? Мы используем .append () Способ!

Вы можете увидеть это прямо здесь:

# Existing list
>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]

# Add the float (decimal number) to the end of the existing list
>>> nums.append(7.34)

# See the updated value of the list
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 7.34]

Эквивалентно …

Если вы знакомы со строкой, списком или кортежным нарезкой, что .append () Действительно стоит за кулисами эквивалентны:

a[len(a):] = [x]

С помощью этого примера вы можете видеть, что они эквивалентны.

Использование .append () :

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> nums.append(4.52)
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 4.52]

Использование списка нарезка:

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> nums[len(nums):] = [4.52]
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 4.52]

Добавление последовательности

Теперь, что вы думаете об этом примере? Как вы думаете, вы будете выводятся?

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> nums.append([5.67, 7.67, 3.44])
>>> nums
# OUTPUT?

Вы готовы? Это будет выход:

[5.6, 7.44, 6.75, 4.56, 2.3, [5.67, 7.67, 3.44]]

Вы можете спросить, почему был добавлен полный список в виде единого элемента? Это потому, что .append () Метод добавляет весь элемент до конца списка. Если элемент представляет собой последовательность, такую как список, словарь или кортеж, вся последовательность будет добавлена как один элемент существующего списка.

Здесь у нас есть другой пример (ниже). В этом случае элемент – кортеж, и он добавляется как один элемент списка, а не как отдельные элементы:

>>> names = ["Lulu", "Nora", "Gino", "Bryan"]
>>> names.append(("Emily", "John"))
>>> names
['Lulu', 'Nora', 'Gino', 'Bryan', ('Emily', 'John')]

🔹 продлить

Теперь давайте погрузимся в функциональность .exend () метод.

Сценарии использования

Вы должны использовать этот метод, если вам нужно Добавьте несколько предметов в список в качестве отдельных предметов Отказ

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

# List that we want to modify
>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]

# Appending the items
>>> nums.append(2.3)
>>> nums.append(9.6)
>>> nums.append(4.564)
>>> nums.append(7.56)

# Updated list
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 2.3, 9.6, 4.564, 7.56]

Я уверен, что вы, вероятно, думаете, что это не будет очень эффективным, верно? Что, если мне нужно добавить тысячи или миллионов значений? Я не могу писать тысячи или миллионы строк для этой простой задачи. Это взяло бы навсегда!

Итак, давайте посмотрим альтернативу. Мы можем хранить значения, которые мы хотим добавить в отдельный список, а затем использовать цикл A для звонков .append () столько раз, сколько необходимо:

# List that we want to modify
>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]

# Values that we want to add
>>> new_values = [2.3, 9.6, 4.564, 7.56]

# For loop that is going to append the value
>>> for num in new_values:
	nums.append(num)

# Updated value of the list
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 2.3, 9.6, 4.564, 7.56]

Это более эффективно, верно? Мы пишем только несколько строк. Но есть еще более эффективный, читаемый и компактный способ достижения той же цели: .exend () !

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> new_values = [2.3, 9.6, 4.564, 7.56]

# This is where the magic occurs! No more for loops
>>> nums.extend(new_values)

# The list was updated with individual values
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 2.3, 9.6, 4.564, 7.56]

Давайте посмотрим, как этот метод работает за кулисами.

Синтаксис и аргументы

Позвонить в .exend () Метод, вам нужно будет использовать этот синтаксис:

Слева направо:

  • Список, который будет изменен. Обычно это переменная, которая относится к списку.
  • Точка Отказ (До сих пор все точно так же, как и раньше).
  • Название метода простираться Отказ (Теперь все начинают меняться …).
  • В скобках, ИТЕРИТЕЛЬНО (Список, кортеж, словарь, набор или строка), которые содержат элементы, которые будут добавлены в виде отдельных элементов списка.

💡 Советы: Согласно Документация Python , ИТЕРАЛИТЕЛЬНЫЙ ДЕЯТЕЛЬНЫЙ, как «объект, способный вернуть своих членов один за раз». ITERABLABLES можно использовать в цикле и потому, что они возвращают свои элементы одновременно, мы можем «сделать что-то» с каждым из них, по одной итерации.

За кулисами

Давайте посмотрим, как .exend () Работает за кулисами. Здесь у нас есть пример:

# List that will be modified
>>> a = [1, 2, 3, 4]

# Sequence of values that we want to add to the list a
>>> b = [5, 6, 7]

# Calling .extend()
>>> a.extend(b)

# See the updated list. Now the list a has the values 5, 6, and 7
>>> a
[1, 2, 3, 4, 5, 6, 7]

Вы можете думать о .exend () Как метод, который добавляет отдельные элементы утечтителя в том же порядке, что они появляются.

В этом случае у нас есть список A = [1, 2, 3, 4] Как показано на диаграмме ниже. У нас также есть список B = [5, 6, 7] который содержит последовательность значений

После того, как этот процесс завершен, у нас есть обновленный список А И мы можем работать со значениями как отдельные элементы А Отказ

💡 Советы: Список B Используется для расширения списка А остается неповрежденным после этого процесса. Вы можете работать с этим после звонка .exend () Отказ Вот доказательство:

>>> a = [1, 2, 3, 4]
>>> b = [5, 6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

# List b is intact!
>>> b
[5, 6, 7]

Примеры

Вам может быть любопытно знать, как .exend () Способ работает при прохождении различных типов по темпам. Давайте посмотрим, как в следующих примерах:

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

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be added (the iterable is a tuple!)
>>> b = (1, 2, 3, 4)

# Method call
>>> a.extend(b)

# The value of the list a was updated
>>> a
[1, 2, 3, 4, 1, 2, 3, 4]

Для наборов: То же самое происходит, если вы проходите набор. Элементы набора добавлены один за другим.

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be appended (the iterable is a set!)
>>> c = {5, 6, 7}

# Method call
>>> a.extend(c)

# The value of a was updated
>>> a
[1, 2, 3, 4, 5, 6, 7]

Для строк: Строки работают немного отличаются с .exend () метод. Каждый символ строки считается «элементом», поэтому символы добавляются один за другим в том порядке, в котором они появляются в строке.

# List that will be extended
>>> a = ["a", "b", "c"]

# String that will be used to extend the list
>>> b = "Hello, World!"

# Method call
>>> a.extend(b)

# The value of a was updated
>>> a
['a', 'b', 'c', 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']

Для словарей: У словарей есть особое поведение, когда вы передаете их как аргументы в .exend () Отказ В этом случае Ключи словаря добавляется один за другим. Значения соответствующих пар клавиш не добавляются.

В этом примере (ниже) ключи «D», «E» и «F». Эти значения добавлены в список А Отказ

# List that will be extended
>>> a = ["a", "b", "c"]

# Dictionary that will be used to extend the list
>>> b = {"d": 5, "e": 6, "f": 7}

# Method call
>>> a.extend(b)

# The value of a was updated
>>> a
['a', 'b', 'c', 'd', 'e', 'f']

Эквивалентно …

Что .exend () Это эквивалентно [Лен (а):] Отказ Здесь у нас есть пример, чтобы проиллюстрировать, что они эквивалентны:

Использование .exend () :

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be appended
>>> b = (6, 7, 8)

# Method call
>>> a.extend(b)

# The list was updated
>>> a
[1, 2, 3, 4, 6, 7, 8]

Использование списка нарезка:

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be appended
>>> b = (6, 7, 8)

# Assignment statement. Assign the iterable b as the final portion of the list a
>>> a[len(a):] = b

# The value of a was updated
>>> a
[1, 2, 3, 4, 6, 7, 8]

Результат такой же, но с использованием .exend () гораздо более читаемый и компактный, верно? Python действительно предлагает удивительные инструменты для улучшения нашего рабочего процесса.

🔸 Резюме их различий

Теперь, когда вы знаете, как работать с .append () и .exend () Давайте посмотрим краткое изложение их ключевых различий:

  • Эффект : .append () Добавляет один элемент до конца списка во время .exend () Можно добавить несколько отдельных элементов до конца списка.
  • Аргумент : .append () принимает один элемент в качестве аргумента во время .exend () принимает намерение в качестве аргумента (список, кортеж, словари, наборы, строки).

Я действительно надеюсь, что вам понравилась моя статья и обнаружила, что это полезно. Теперь вы можете работать с .append () и .exend () в ваших проектах Python. Проверьте мои онлайн-курсы Отказ Следуй за мной на Twitter Отказ ⭐️.