HomeLập trìnhPythonNối danh sách...

Nối danh sách Python với Mở rộng danh sách Python – Sự khác biệt được giải thích bằng các ví dụ về phương thức mảng


🔹 Xin chào

Nếu bạn muốn học cách làm việc với .append().extend() và hiểu sự khác biệt của chúng, thì bạn đã đến đúng nơi. Chúng là những phương thức danh sách mạnh mẽ mà bạn chắc chắn sẽ sử dụng trong các dự án Python của mình.

Trong bài viết này, bạn sẽ học:

  • Cách thức và thời điểm sử dụng .append() phương pháp.
  • Cách thức và thời điểm sử dụng .extend() phương pháp.
  • Sự khác biệt chính của họ.

Hãy bắt đầu nào. ✨

🔸 Thêm

Hãy xem làm thế nào .append() phương pháp hoạt động đằng sau hậu trường.

Trường hợp sử dụng

Bạn nên sử dụng phương pháp này khi bạn muốn thêm một mục vào cuối của một danh sách.

💡 Lời khuyên: Bạn có thể thêm các mục thuộc bất kỳ loại dữ liệu nào vì danh sách có thể có các phần tử thuộc các loại dữ liệu khác nhau.

hinh-105

Cú pháp và đối số

để gọi .append() phương pháp, bạn sẽ cần sử dụng cú pháp này:

hình ảnh-104

Từ trái sang phải:

  • Danh sách sẽ được sửa đổi. Đây thường là một biến tham chiếu đến một danh sách.
  • Một dấu chấm, theo sau là tên của phương thức .append().
  • Trong dấu ngoặc đơn, mục sẽ được thêm vào cuối danh sách.

💡 Lời khuyên: Dấu chấm rất quan trọng. Đây được gọi là “ký hiệu dấu chấm”. Về cơ bản, dấu chấm có nội dung “gọi phương thức này trong danh sách cụ thể này”, vì vậy hiệu ứng của phương thức sẽ được áp dụng cho danh sách nằm trước dấu chấm.

ví dụ

Đây là một ví dụ về cách sử dụng .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]

💡 Lời khuyên: Khi bạn sử dụng .append() danh sách ban đầu được sửa đổi. Phương thức này không tạo bản sao của danh sách – nó thay đổi danh sách gốc trong bộ nhớ.

Hãy giả sử rằng chúng ta đang tiến hành một nghiên cứu và chúng ta muốn phân tích dữ liệu được thu thập bằng Python. Chúng ta cần thêm một phép đo mới vào danh sách giá trị hiện có.

Chúng ta làm điều đó như thế nào? chúng tôi sử dụng .append() phương pháp!

Bạn có thể thấy nó ngay tại đây:

# 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]

Tương đương với…

Nếu bạn đã quen thuộc với việc cắt chuỗi, danh sách hoặc bộ .append() thực sự đằng sau hậu trường tương đương với:

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

Với ví dụ này, bạn có thể thấy rằng chúng tương đương nhau.

sử dụng .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]

Sử dụng danh sách cắt:

>>> 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]

Nối thêm một chuỗi

Bây giờ, bạn nghĩ gì về ví dụ này? Bạn nghĩ gì sẽ được xuất ra?

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

Bạn đã sẵn sàng chưa? Đây sẽ là đầu ra:

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

Bạn có thể hỏi, tại sao danh sách đầy đủ lại được thêm vào dưới dạng một mục? Đó là bởi vì .append() phương pháp thêm toàn bộ mục vào cuối danh sách. Nếu mục là một chuỗi, chẳng hạn như danh sách, từ điển hoặc bộ, toàn bộ chuỗi sẽ được thêm dưới dạng một mục duy nhất của danh sách hiện có.

Đọc thêm  Python JSON – Cách chuyển đổi chuỗi thành JSON

Ở đây chúng tôi có một ví dụ khác (bên dưới). Trong trường hợp này, mục là một bộ và nó được thêm dưới dạng một mục duy nhất của danh sách, không phải dưới dạng các mục riêng lẻ:

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

🔹 Mở rộng

Bây giờ chúng ta hãy đi sâu vào chức năng của .extend() phương pháp.

Trường hợp sử dụng

Bạn nên sử dụng phương pháp này nếu bạn cần nối thêm một số mục vào danh sách dưới dạng các mục riêng lẻ.

Hãy để tôi minh họa tầm quan trọng của phương pháp này với một người bạn quen thuộc mà bạn vừa biết: .append() phương pháp. Dựa trên những gì bạn đã học cho đến nay, nếu chúng tôi muốn thêm một số riêng biệt, cá nhân, cá thể các mục vào danh sách bằng cách sử dụng .append()chúng ta sẽ cần sử dụng .append() nhiều lần, như thế này:

# 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]

Tôi chắc rằng bạn có thể nghĩ rằng điều này sẽ không hiệu quả lắm, phải không? Nếu tôi cần thêm hàng nghìn hoặc hàng triệu giá trị thì sao? Tôi không thể viết hàng nghìn hay hàng triệu dòng cho nhiệm vụ đơn giản này. Điều đó sẽ mất mãi mãi!

Vì vậy, hãy xem một sự thay thế. Chúng tôi có thể lưu trữ các giá trị mà chúng tôi muốn thêm vào trong một danh sách riêng và sau đó sử dụng vòng lặp for để gọi .append() nhiều lần nếu cần:

# 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]

Điều này là hiệu quả hơn, phải không? Chúng tôi chỉ viết vài dòng. Nhưng có một cách hiệu quả hơn, dễ đọc và nhỏ gọn hơn để đạt được mục đích tương tự: .extend()!

>>> 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]

Hãy xem cách phương pháp này hoạt động đằng sau hậu trường.

Đọc thêm  Hướng dẫn Python cạo web – Cách cạo dữ liệu từ một trang web

Cú pháp và đối số

để gọi .extend() phương pháp, bạn sẽ cần sử dụng cú pháp này:

hinh-110

Từ trái sang phải:

  • Danh sách sẽ được sửa đổi. Đây thường là một biến đề cập đến danh sách.
  • Một dấu chấm . (Cho đến nay, mọi thứ vẫn giống hệt như trước đây).
  • Tên của phương pháp extend. (Bây giờ mọi thứ bắt đầu thay đổi…).
  • Trong ngoặc đơn, một lặp đi lặp lại (danh sách, bộ, từ điển, tập hợp hoặc chuỗi) chứa các mục sẽ được thêm dưới dạng các thành phần riêng lẻ của danh sách.

💡 Lời khuyên: Theo tài liệu Python, một iterable được định nghĩa là “một đối tượng có khả năng trả về từng thành viên của nó một lần”. Iterables có thể được sử dụng trong vòng lặp for và bởi vì chúng trả về từng phần tử một, nên chúng ta có thể “làm điều gì đó” với từng phần tử trong số chúng, một phần tử cho mỗi lần lặp.

Đằng sau hậu trường

Hãy xem làm thế nào .extend() làm việc đằng sau hậu trường. Ở đây chúng tôi có một ví dụ:

# 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]

bạn có thể nghĩ về .extend() như một phương thức nối thêm các phần tử riêng lẻ của iterable theo cùng thứ tự khi chúng xuất hiện.

Trong trường hợp này, chúng tôi có một danh sách a = [1, 2, 3, 4] như minh họa trong sơ đồ dưới đây. Chúng tôi cũng có một danh sách b = [5, 6, 7] chứa chuỗi giá trị mà chúng tôi muốn thêm vào. Phương thức lấy từng phần tử của b và nối nó vào danh sách a theo cùng một thứ tự.

hinh-106
Bước 1. Phần tử đầu tiên được thêm vào.
hinh-107
Bước 2. Phần tử thứ hai được thêm vào.
hinh-108
Bước 3. Phần tử thứ ba được thêm vào

Sau khi quá trình này hoàn tất, chúng tôi có danh sách cập nhật a và chúng ta có thể làm việc với các giá trị dưới dạng các phần tử riêng lẻ của a.

hình ảnh-109

💡 Lời khuyên: Danh sách b dùng để mở rộng danh sách a vẫn còn nguyên vẹn sau quá trình này. Bạn có thể làm việc với nó sau khi gọi đến .extend(). Đây là bằng chứng:

>>> 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]

ví dụ

Bạn có thể tò mò muốn biết làm thế nào .extend() phương thức hoạt động khi bạn vượt qua các loại lần lặp khác nhau. Hãy xem cách thực hiện trong các ví dụ sau:

Đối với bộ dữ liệu:
Quá trình này hoạt động giống hệt nhau nếu bạn vượt qua một bộ dữ liệu. Các phần tử riêng lẻ của bộ dữ liệu được nối từng cái một theo thứ tự chúng xuất hiện.

# 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]

Đối với bộ:
Điều tương tự cũng xảy ra nếu bạn vượt qua một tập hợp. Các phần tử của tập hợp được thêm vào từng cái một.

# 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]

Đối với chuỗi:
Chuỗi hoạt động hơi khác một chút với .extend() phương pháp. Mỗi ký tự của chuỗi được coi là một “mục”, vì vậy các ký tự được thêm vào từng ký tự một theo thứ tự xuất hiện trong chuỗi.

# 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', '!']

Đối với từ điển:
Từ điển có một hành vi cụ thể khi bạn chuyển chúng làm đối số cho .extend(). Trong trường hợp này, các phím của từ điển được thêm vào từng cái một. Giá trị của các cặp khóa-giá trị tương ứng không được thêm vào.

Đọc thêm  Cách tạo mã QR tuyệt đẹp bằng Python

Trong ví dụ này (bên dưới), các phím là “d”, “e” và “f”. Các giá trị này được thêm vào danh sách a.

# 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']

Tương đương với…

.extend() tương đương với a[len(a):] = iterable. Ở đây chúng tôi có một ví dụ để minh họa rằng chúng là tương đương:

sử dụng .extend():

# 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]

Sử dụng danh sách cắt:

# 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]

Kết quả là như nhau, nhưng sử dụng .extend() dễ đọc và nhỏ gọn hơn nhiều, phải không? Python thực sự cung cấp các công cụ tuyệt vời để cải thiện quy trình làm việc của chúng tôi.

🔸 Tóm tắt sự khác biệt của chúng

Bây giờ bạn đã biết cách làm việc với .append().extend()hãy xem tóm tắt về những điểm khác biệt chính của chúng:

  • Hiệu ứng: .append() thêm một phần tử vào cuối danh sách trong khi .extend() có thể thêm nhiều phần tử riêng lẻ vào cuối danh sách.
  • Tranh luận: .append() lấy một phần tử làm đối số trong khi .extend() lấy một đối số có thể lặp lại (danh sách, bộ dữ liệu, từ điển, bộ, chuỗi).

Tôi thực sự hy vọng rằng bạn thích bài viết của tôi và thấy nó hữu ích. Bây giờ bạn có thể làm việc với .append().extend() trong các dự án Python của bạn. Kiểm tra các khóa học trực tuyến của tôi. theo tôi trên Twitter. ⭐️





Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status