HomeLập trìnhPythonCác phương thức...

Các phương thức danh sách Python – append() so với extension() trong Python được giải thích bằng các ví dụ về mã


Khi làm việc với danh sách Python, bạn thường cần kết hợp dữ liệu từ nhiều danh sách. Làm cách nào bạn làm được việc đó?

Trong hướng dẫn này, chúng ta sẽ xem các cách khác nhau để bạn có thể kết hợp dữ liệu từ nhiều danh sách. Chúng ta cũng sẽ tìm hiểu cách các phương thức danh sách append()extend() làm việc thông qua các ví dụ đơn giản. Bắt đầu nào.

Cách sử dụng Toán tử ‘+’ trong Python

Trước khi chúng ta xem xét cách append()extend() phương pháp hoạt động, chúng ta hãy xem những gì + Toán tử nối danh sách thực hiện.

Xem xét ví dụ sau nơi chúng tôi có hai danh sách, list_1list_2mà chúng tôi muốn nối (hoặc nối với nhau từ đầu đến cuối):

list_1 = [1,2,3,4,5]
list_2 = [6,7,8]

print(list_1 + list_2)
# Output
[1, 2, 3, 4, 5, 6, 7, 8]

print(list_1)
# Output
[1, 2, 3, 4, 5]

print(list_2)
# Output
[6, 7, 8]

Nếu bạn đọc kỹ đoạn mã trên, bạn có thể thấy như sau.

  • list_1 + list_2 không thêm các mục từ list_2 đến list_1.
  • Thay vào đó, nó tạo ra một danh sách mới chứa các mục từ cả hai list_1list_2.
  • Vì vậy, list_1list_2 vẫn không thay đổi.

Nếu chúng ta muốn sửa đổi thì sao list_1 thay vì tạo một danh sách mới? Chà, hãy làm điều đó bằng cách sử dụng append()extend() phương pháp trong phần tiếp theo.

Đọc thêm  Cách tạo danh sách trong Python – Ví dụ khai báo danh sách trong Python

Cách sử dụng Phương thức append() trong Python

Trong phần này, chúng tôi sẽ thêm các mục từ list_2 đến list_1 sử dụng các phương pháp liệt kê. Xem xét các danh sách ví dụ tương tự từ phần trước, bây giờ chúng ta hãy thử sửa đổi list_1 bằng cách thêm các yếu tố từ list_2 với nó.

Đoạn mã dưới đây gọi append() phương pháp trên list_1 với list_2 như lập luận.

# Let's append list_2 to list_1
list_1.append(list_2)
print(list_1)

# Output
[1, 2, 3, 4, 5, [6, 7, 8]]


# print the length of list_1
print(len(list_1))

# Output
6

Chúng ta thấy rằng list_2 đã được thêm vào như một mục danh sách duy nhất ở cuối list_1 .
Điều này có nghĩa là độ dài của list_1 tăng 1 sau append() hoạt động.

Điều gì sẽ xảy ra nếu chúng tôi muốn thêm các mục từ list_2 đến list_1 không phải là một danh sách duy nhất ở cuối list_1 nhưng như các mặt hàng cá nhân? Hãy làm điều đó trong phần tiếp theo.

Cách sử dụng Phương thức mở rộng () trong Python

Trước khi chúng ta bắt đầu sử dụng extend() phương pháp, hãy làm như sau.

  • Vòng qua list_2
  • nối thêm mỗi mục từ list_2 đến list_1
for item in list_2:
  list_1.append(item)

print(list_1)

# Output
[1, 2, 3, 4, 5, 6, 7, 8]

Bây giờ chúng tôi đã thêm tất cả các mục từ list_2 đến list_1theo cách chúng tôi muốn. 😀
Chúng ta có thể làm điều tương tự bằng cách gọi extend() phương pháp trên list_1 với list_2 như lập luận. Bạn có thể thấy cách thức hoạt động của nó trong đoạn mã dưới đây:

# Let's extend list_1 with items from list_2
list_1.extend(list_2)
print(list_1)

# Output
[1, 2, 3, 4, 5, 6, 7, 8]

# print the length of list_1
print(len(list_1))

# Output
8

Vì vậy, nếu bạn mở rộng một danh sách độ dài len1 với một danh sách dài len2 ,
độ dài của danh sách mà trên đó extend() phương pháp được gọi là len1 + len2.

Có bất kỳ cảnh báo nào chưa?

Điều gì sẽ xảy ra nếu chúng tôi muốn thêm một mục chứ không phải toàn bộ danh sách (hoặc bất kỳ mục nào có thể lặp lại) vào danh sách hiện có của chúng tôi? Trong ví dụ sau, hãy thêm giá trị boolean True đến list_1 sử dụng append()như hình bên dưới.

list_1 = [1,2,3,4,5]
list_1.append(True)
print(list_1)

# Output
[1, 2, 3, 4, 5, True]

Điều gì sẽ xảy ra nếu chúng ta thử sử dụng extend() để làm điều tương tự như trên?

list_1 = [1,2,3,4,5]
list_1.extend(True)
print(list_1)

# Output
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-9e4e0d6da67b> in <module>()
      1 list_1 = [1,2,3,4,5]
----> 2 list_1.extend(True)
      3 print(list_1)

TypeError: 'bool' object is not iterable

Oh, làm như vậy ném một lỗi. 😢 Hãy thử phân tích thông báo lỗi được trả về. TypeError: 'bool' object is not iterable. Điều này có nghĩa là lập luận của chúng tôi là của một loại không chính xác.

Các extend() phương thức yêu cầu đối số phải được lặp lại. Trong nội bộ, các extend() phương thức hoạt động bằng cách lặp qua iterable và thêm từng mục trong iterable vào danh sách đầu tiên. Danh sách, tập hợp, bộ dữ liệu và chuỗi đều là những ví dụ về iterables.

Đọc thêm  Hướng dẫn từ điển Python – Cách lặp lại, sao chép và hợp nhất từ ​​điển trong Python 3.9

Bất kỳ đối tượng nào mà bạn có thể lặp qua và truy cập các mục riêng lẻ là một lặp đi lặp lại.
Lưu ý rằng cú pháp chung để sử dụng extend() phương pháp là list_name.extend(iterable).

Hãy thử mở rộng () và nối thêm () vào Chuỗi

Các chuỗi về cơ bản là một chuỗi các ký tự và do đó có thể lặp lại. Hãy thử sử dụng extend()append() phương pháp trên list_1 với một chuỗi làm đối số.

Hãy thêm chuỗi ‘Sung sướng’ đến list_1 sử dụng append() phương pháp.

list_1 = [1,2,3,4,5]
list_1.append('Happy')
print(list_1)

# Output
[1, 2, 3, 4, 5, 'Happy']

Bây giờ chúng ta hãy thử thêm cùng một chuỗi bằng cách sử dụng extend() phương pháp. Lần này chúng ta không nên gặp lỗi. Thay vào đó, phương thức mở rộng sẽ lặp qua chuỗi và thêm từng ký tự vào list_1.

Hãy kiểm tra xem điều này có hoạt động trong ví dụ mã sau không.🙂

list_1 = [1,2,3,4,5]
list_1.extend('Happy')
print(list_1)

# Output
[1, 2, 3, 4, 5, 'H', 'a', 'p', 'p', 'y']

Khá trực quan để thấy rằng append() phương pháp chạy trong thời gian không đổitrong khi extend() phương thức phải có thời gian chạy tỷ lệ thuận với độ dài của lần lặp được truyền dưới dạng đối số cho phương thức.

kết thúc

Tôi hy vọng bài đăng này làm rõ cách sử dụng append()extend() các phương thức trong Python. Cảm ơn bạn đã đọc, chúc bạn học tập và viết mã vui vẻ!

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

Để có phần giới thiệu chung về danh sách Python và các phương thức danh sách phổ biến, vui lòng kiểm tra bài đăng này: Danh sách trong Python – Hướng dẫn toàn diện.



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