HomeLập trìnhPythonDanh sách trong...

Danh sách trong Python – Hướng dẫn toàn diện


Giả sử bạn định ghé thăm cửa hàng gần nhà để mua những thứ cần thiết. Điều đầu tiên bạn sẽ làm là gì?

Đã có câu trả lời chưa? Vâng, có lẽ bạn sẽ viết ra một danh sách mua sắm! Python cũng có cấu trúc dữ liệu tích hợp được gọi là List điều đó rất giống với danh sách mua sắm của bạn.

Bài đăng này là một hướng dẫn thân thiện với người mới bắt đầu về danh sách Python. Trong vài phút tới, chúng ta sẽ làm quen với các danh sách và đề cập đến một số thao tác phổ biến nhất như cắt qua các danh sách và sửa đổi chúng bằng các phương pháp danh sách.

Vì vậy, hãy tiếp tục tìm hiểu thêm về danh sách Python và xem chúng giống với danh sách mua sắm của chúng ta như thế nào.

Hãy nhảy vào và mua sắm với nhau!

Cách danh sách hoạt động trong Python

Việc viết ra các mục trong danh sách mua sắm lần lượt nằm dưới mục kia là điều hoàn toàn tự nhiên. Để Python nhận ra danh sách của chúng tôi, chúng tôi phải đặt tất cả các mục danh sách trong dấu ngoặc vuông ([ ])với các mặt hàng cách nhau bởi dấu phẩy.

Đây là một ví dụ nơi chúng tôi tạo danh sách có 6 mặt hàng mà chúng tôi muốn mua.

shopping_list = ['apples','pens','oatmeal  cookies','notepad','brushes','paint']

Khả năng thay đổi của danh sách trong Python

Cũng giống như cách mà chúng ta luôn có thể sửa đổi danh sách mua sắm của mình bằng cách sắp xếp lại các mặt hàng – làm những việc như thay thế oatmeal cookies với yêu thích của chúng tôi candyví dụ – chúng ta có thể làm tương tự với danh sách Python.

Vì lý do này, các danh sách được có thể thay đổi. Đây là cách chúng ta có thể thay thế oatmeal cookies với candy trong danh sách của chúng tôi.

shopping_list[2] = 'candy'
print(shopping_list)
# Output
>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint']

Lập chỉ mục trong danh sách Python

bạn có nhận thấy rằng oatmeal cookies là mục thứ ba trong danh sách, nhưng nằm ở chỉ mục 2? Vâng, điều này là do không lập chỉ mục. Trong Python, index về cơ bản là một offset từ đầu danh sách.

Đây là lý do tại sao phần tử đầu tiên nằm ở chỉ mục (không bù), phần tử thứ hai nằm ở chỉ mục 1, và như thế. Nói chung, nếu danh sách có n phần tử thì phần tử cuối cùng nằm ở chỉ mục (n-1).

Nếu chúng tôi cố gắng truy cập một phần tử tại một chỉ mục không hợp lệ, chúng tôi sẽ nhận được một IndexError .

Trong ví dụ của chúng tôi, danh sách mua sắm của chúng tôi có 6 phần tử (chỉ mục nằm trong khoảng từ 0 đến 5). Như được hiển thị trong đoạn mã bên dưới, nếu chúng tôi cố gắng truy cập một phần tử tại index = 6 chúng tôi sẽ gặp lỗi vì không có phần tử nào trong chỉ mục 6.

print(shopping_list[6])
# Output
>> --------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-21-a9f3b9517136> in <module>()
----> 1 shopping_list[6]

IndexError: list index out of range

Mặt khác, chúng ta cũng có thể sử dụng lập chỉ mục tiêu cực. Các yếu tố cuối cùng đang ở chỉ mục -1các phần tử thứ hai đến phần tử cuối cùng đang ở chỉ mục -2 và như thế.

print(shopping_list[-1])
# Output
>> paint

Giống như danh sách mua sắm của chúng tôi có thể chứa các mặt hàng thuộc bất kỳ loại nào như trái cây, rau, đồ ngọt, v.v., danh sách Python cũng có thể chứa các mặt hàng của bất kỳ loại.

Điều đó đang được nói, việc một danh sách chứa một danh sách nhỏ khác là một trong các thành phần của nó là điều hoàn toàn bình thường. Quá trình này được gọi là lồng nhau và các danh sách như vậy được gọi là danh sách lồng nhau.

Đọc thêm  Cách cạo các bài viết trên Wikipedia bằng Python

Đây là một ví dụ trong đó danh sách mua sắm của chúng tôi có hai danh sách nhỏ hơn.
my_nested_list = [['apple','banana'],['paint','brushes']]

Cách lặp qua các danh sách trong Python

Nó là khá phổ biến để đọc qua của chúng tôi shopping_list để kiểm tra xem chúng tôi đã mua tất cả những gì chúng tôi cần chưa. Điều này được gọi là duyệt qua danh sách.

Trong Python, bạn có thể làm điều này bằng cách sử dụng các vòng lặp và in nhà điều hành.

for item in shopping_list:
  print(item)
# Output 
apples
pens
candy
notepad
brushes
paint

Thay vào đó, nếu chúng tôi thực hiện một số thao tác trên danh sách, thì nên sử dụng range để có được một tập hợp các chỉ số mà sau đó chúng ta có thể lặp qua.

Cách cắt qua các danh sách trong Python

Điều gì sẽ xảy ra nếu chúng ta chỉ quan tâm đến việc xem xét một tập hợp con shopping_list? Điều này sẽ yêu cầu chúng tôi cắt qua danh sách và truy xuất một tập hợp con các mục.

Đây là một mẫu chung: list_name[start_index:end_index +1]. Bây giờ chúng ta hãy thử phân tích cú pháp này.

  • Nếu chúng ta cần một lát của danh sách lên đến end_indexchỉ định end_index + 1 khi chỉ định các chỉ số bắt đầu và kết thúc.
  • mặc định start_indexvà mặc định end_index là chỉ số của phần tử cuối cùng trong danh sách.
  • Nếu chúng ta không chỉ định start_indexlát bắt đầu từ phần tử đầu tiên trong danh sách.
  • Nếu chúng ta không chỉ định end_indexlát cắt kéo dài cho đến phần tử cuối cùng trong danh sách.
  • Nếu chúng tôi không chỉ định cả hai chỉ số này, thì lát cắt được trả về là toàn bộ danh sách.

Đoạn mã sau minh họa điều này.

print(shopping_list[2:])
# Output
>> ['candy', 'notepad', 'brushes', 'paint']

print(shopping_list[:2])
# Output
>> ['apples', 'pens']

print(shopping_list[:])
# Output
>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint']

Cách thao tác trên danh sách trong Python

Bạn có thể áp dụng các chức năng tích hợp phổ biến như len(), min()max() trên danh sách để lấy độ dài của danh sách, phần tử tối thiểu và phần tử tối đa tương ứng.

Đọc thêm  Làm thế nào — và tại sao — bạn nên sử dụng Trình tạo Python

Như là của chúng ta shopping_list chỉ có chuỗi, min() trả về chuỗi xuất hiện đầu tiên khi danh sách được sắp xếp theo từ điển. max() trả về chuỗi xảy ra cuối cùng.

Bạn có thể xem đoạn mã cho phần này bên dưới.

print(len(shopping_list))
>> 6

print(max(shopping_list))
>> pens

print(min(shopping_list))
>> apples

Chúng ta có thể tạo một danh sách mới bằng cách nối các danh sách hiện có, giống như chúng ta luôn có thể ghép hai danh sách mua sắm nhỏ lại với nhau để tạo một danh sách mới.

list_2 = shopping_list + ['noodles','almonds']
print(list_2)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'noodles', 'almonds']

Phương pháp danh sách Python

Ngoài các hàm dựng sẵn có thể thao tác trên danh sách, Python còn có một số phương thức danh sách giúp chúng ta thực hiện các thao tác hữu ích trên danh sách.

Hãy xem xét của chúng tôi shopping_list. Các hoạt động phổ biến mà chúng tôi có thể sẽ thực hiện trong danh sách của chúng tôi là gì? Hãy liệt kê một số:

  • Thêm một mục/nhiều mục vào của chúng tôi shopping_list
  • Xóa một mục/nhiều mục khỏi danh sách của chúng tôi shopping_list
  • Sắp xếp lại các mục trong của chúng tôi shopping_list

Cách thêm phần tử vào danh sách trong Python

Chúng ta có thể thêm từng mục một vào cuối danh sách bằng cách sử dụng append() phương pháp. Hãy thêm grapes để chúng tôi shopping_list.

shopping_list.append('grapes')
print(shopping_list)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes']

Điều gì sẽ xảy ra nếu chúng tôi có một danh sách khác (hoặc bất kỳ danh sách có thể lặp lại nào khác) mà chúng tôi muốn thêm vào danh sách hiện có? Thay vì thêm từng mục từ danh sách mới, chúng ta có thể sử dụng extend() phương thức thêm toàn bộ danh sách vào danh sách đầu tiên như hình bên dưới.

shopping_list.extend(['protein bars','cheese'])
print(shopping_list)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars', 'cheese']

Ghi chú: Có sự khác biệt cố hữu giữa các phương thức danh sách append()extend() và toán tử ‘+’ để nối hai danh sách.

Trong khi toán tử ‘+’ tạo một danh sách mới bằng cách kết hợp các danh sách mà chúng ta chỉ định làm toán hạng, các phương thức append()extend() sửa đổi danh sách mà chúng được gọi (được gọi) và không trả về danh sách mới.

Cách xóa phần tử khỏi danh sách trong Python

Chúng ta có thể xóa các phần tử khỏi danh sách, một phần tử hoặc một nhóm, bằng các phương pháp sau.

Các pop() trả về mục cuối cùng trong danh sách và cũng xóa nó, như hình bên dưới. cheese là mục cuối cùng trong danh sách và nó hiện đã bị xóa.

last_element = shopping_list.pop()
print(shopping_list)
print(last_element)
# Output
>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars']
>> cheese

Nếu chúng tôi muốn xóa một mục khỏi một chỉ mục cụ thể, chúng tôi có thể chỉ định index như một đối số để pop().

not_needed = shopping_list.pop(2)
print(not_needed)
# Output
>> candy

Nếu chúng tôi không cần quyền truy cập vào giá trị của mục danh sách đã xóa, chúng tôi có thể chọn sử dụng del chức năng thay thế.

Đọc thêm  Học Python bằng cách xây dựng 5 trò chơi

Chúng ta có thể xóa một mục tại một chỉ mục cụ thể bằng cách chỉ định chỉ mục đó hoặc chúng ta có thể xóa tất cả các mục trong một lát danh sách bằng cách cắt qua danh sách như đã giải thích trong phần trước.

del shopping_list[1]
print(shopping_list)
# Output
>> ['apples', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars']

Giả sử chúng ta biết mặt hàng mà chúng ta không cần mua nữa nhưng không biết mặt hàng đó ở chỉ số nào. Trong những trường hợp này, chúng ta có thể sử dụng remove() phương pháp để loại bỏ một mục theo tên.

Trong ví dụ của chúng tôi, mục tại chỉ mục 1 trong bản sao gần đây nhất của chúng tôi là pens. Nếu chúng ta không biết chỉ số của penschúng ta có thể viết shopping_list.remove('pens') để thực hiện tác vụ tương tự như trong đoạn mã trên.

Để xóa tất cả các phần tử khỏi danh sách, chúng ta có thể sử dụng list_name.clear().

Ghi chú: Nếu chúng ta cố xóa một phần tử không tồn tại trong danh sách, chúng ta sẽ nhận được một ValueError.

Cách sắp xếp danh sách trong Python

Chúng ta có thể chọn sắp xếp shopping_list bằng cách gọi sort() phương pháp. Vì danh sách của chúng tôi chỉ có các chuỗi, sort() sẽ sắp xếp danh sách của chúng tôi theo thứ tự bảng chữ cái. Nếu chúng ta có một danh sách các số thì mặc định các phần tử sẽ được sắp xếp theo thứ tự tăng dần.

Nếu bạn muốn sắp xếp theo thứ tự giảm dần, hãy đặt đối số tùy chọn reverse = True.

Ghi chú: gọi các sort() phương thức sửa đổi danh sách hiện có và không tạo danh sách mới. Nếu bạn muốn có một danh sách được sắp xếp mới trong khi vẫn giữ nguyên danh sách hiện có, hãy sử dụng sorted() phương pháp thay thế.

shopping_list.sort()
print(shopping_list)
# Output
>> ['apples', 'brushes', 'grapes', 'notepad', 'paint', 'protein bars']

Một phương pháp hữu ích khác là count mà bạn có thể sử dụng để kiểm tra xem một mục cụ thể xuất hiện bao nhiêu lần trong danh sách của chúng tôi. list_name.count(elt) trả về số lần elt xảy ra trong danh sách list_name.

Tóm tắt lại

⌛ Đã đến lúc tóm tắt nhanh. Nhìn vào hình ảnh bên dưới và kiểm tra xem bạn có thể nhớ lại những gì chúng ta đã đọc cho đến nay không.

danh sách-tóm tắt

📌Đây là một bảng tra cứu hữu ích khác mà tôi đã chuẩn bị cho danh sách các phương pháp mà bạn có thể lưu lại để tham khảo.

lmcc

Hẹn gặp lại tất cả các bạn trong một bài đăng khác về Python sớm.🙂 Cho đến lúc đó, Chúc bạn học tập và viết mã vui vẻ!

Người giới thiệu

[1] Python cho mọi người trên freeCodeCamp

[2] https://docs.python.org/3/tutorial/datastructures.html



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