Trong hướng dẫn Danh sách Python này, chúng ta sẽ khám phá các cách để Tạo, Truy cập, Cắt, Thêm/Xóa các phần tử vào Danh sách Python được cho là một trong những loại dữ liệu hữu ích nhất
Python bao gồm 4 loại dữ liệu bộ sưu tập như được đề cập bên dưới
- Danh sách
- Bố trí
- Từ điển
- Tuple
Trong hướng dẫn này, chúng tôi sẽ thảo luận chi tiết về Danh sách và các hoạt động khác nhau của nó. Trong Python list là một cấu trúc dữ liệu hay nó giống như một mảng dùng để chứa nhiều dữ liệu cùng một lúc
=> Khám phá loạt bài đào tạo Python tại đây
Nếu bạn có kinh nghiệm về bất kỳ ngôn ngữ lập trình nào khác như Java, C, C++, v.v., thì bạn sẽ quen với khái niệm mảng. Danh sách gần giống như mảng
Bạn sẽ học được gì
Danh sách Python là gì
Trong Python, danh sách là một kiểu dữ liệu, lưu trữ một tập hợp các đối tượng [mục] khác nhau trong dấu ngoặc vuông [[]]. Mỗi mục trong danh sách được phân tách bằng dấu phẩy [,] với mục đầu tiên ở chỉ mục 0
Ghi chú. Về sau, tất cả các ví dụ trong hướng dẫn này sẽ chạy trực tiếp từ trình bao Python, trừ khi có quy định khác.
Dưới đây là một ví dụ về danh sách có 5 mục
>>> l = ['what','who','where','when','how'] >>>l ['what','who','where','when','how']
Trong ví dụ trên, chúng ta có thể thấy rằng danh sách có các đối tượng Chuỗi dưới dạng các mục và mỗi mục được phân tách bằng dấu phẩy
Đặc điểm của danh sách Python
Trước khi xem cách chúng ta có thể thao tác các mục trong danh sách, hãy xem một số đặc điểm khiến danh sách Python được ưa chuộng
Danh sách Python là chuỗi vùng chứa
Không giống như dãy phẳng [chuỗi, mảng. mảng, chế độ xem bộ nhớ, v.v.] chỉ có thể chứa các mục thuộc một loại, danh sách là một chuỗi vùng chứa có thể chứa các mục thuộc một loại cũng như các loại khác nhau
Ví dụ với các mục của một loại
Hãy mở trình bao python của chúng tôi và xác định danh sách các số
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']
Ví dụ trên hiển thị danh sách các mục cùng loại, trong trường hợp này là loại chuỗi[str]
Ví dụ với các mặt hàng thuộc các loại khác nhau
Hãy mở trình bao Python của chúng tôi và xác định một phiên bản khác của danh sách các số
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]
Ví dụ trên hiển thị danh sách các mục thuộc các loại khác nhau. Các loại là chuỗi, số nguyên và float
// a sketch showing the list of items and their types as annotation
Danh sách Python cũng có thể chứa tất cả các đối tượng như hàm, lớp, mô-đun, danh sách, bộ dữ liệu, v.v.
Mở trình chỉnh sửa và dán mã bên dưới
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]
đầu ra
Danh sách Python được sắp xếp theo trình tự
Danh sách Python là một tập hợp các đối tượng được sắp xếp theo thứ tự. Vị trí của từng mục trong danh sách là rất quan trọng. Trên thực tế, hai danh sách có cùng mục sẽ không giống nhau nếu thứ tự sắp xếp các mục không giống nhau
>>> ['a','b','c','d'] == ['a','c','b','d'] False
Đặc điểm này của danh sách Python cho phép truy cập các mục của nó bằng cách lập chỉ mục và cắt [thêm về điều này sau]
Danh sách Python là các chuỗi có thể thay đổi
Danh sách Python có thể thay đổi. Nhưng một đối tượng có thể thay đổi là gì? . Ví dụ của các chuỗi có thể thay đổi khác là từ điển, mảng. mảng,.
Tại sao có thể thay đổi? . Điều này chỉ có thể với khả năng biến đổi. Khả năng thay đổi cũng cho phép chúng tôi sửa đổi danh sách tại chỗ [thêm về điều này]
Hãy xác minh tính có thể thay đổi của danh sách bằng ví dụ bên dưới .
Chỉ cần mở trình chỉnh sửa và dán mã
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]
đầu ra
Từ kết quả trên, chúng tôi nhận thấy rằng danh sách trước và sau khi sửa đổi là khác nhau. Tuy nhiên, giá trị Id là như nhau. Giá trị Id ở đây đại diện cho địa chỉ của đối tượng trong bộ nhớ – được lấy bằng Python
Điều này cho chúng ta biết rằng, mặc dù nội dung danh sách đã thay đổi, nhưng nó vẫn là cùng một đối tượng. Do đó, điều này thỏa mãn định nghĩa của chúng tôi. “Nó chỉ đơn giản là một đối tượng có thể được sửa đổi sau khi nó được tạo ra”
Ghi chú. Trong ví dụ trên, chúng tôi đã sử dụng lập chỉ mục[more on this] để sửa đổi danh sách.
Thao tác danh sách Python
Với danh sách Python, bầu trời là giới hạn của chúng tôi. Có vô số điều chúng ta có thể làm với danh sách như thêm, xóa, lập chỉ mục, cắt, kiểm tra tư cách thành viên, v.v. Ngoài ra, Python có các hàm tích hợp giúp việc thao tác với danh sách trở nên thú vị hơn
Trong phần này, chúng ta sẽ xem xét một số thao tác danh sách thường được sử dụng
Tạo một danh sách
Để tạo danh sách, bạn chỉ cần đặt một số mục hoặc biểu thức trong dấu ngoặc vuông được phân tách bằng dấu phẩy
[expression1, expression2,...,expresionN]
>>> l = [4,3,5,9+3,False] >>> l [4, 3, 5, 12, False]
Ngoài ra, Python có một đối tượng tích hợp được gọi là list[] có thể được sử dụng để tạo danh sách
list[ sequence ]
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']0
Danh sách Python [] có thể lấy các loại trình tự và chuyển đổi chúng thành danh sách. Đây là cách điển hình để chuyển đổi một tuple thành một danh sách
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']1
Trong ví dụ trên, chúng tôi đã sử dụng kiểu dữ liệu. Nó tương tự như một danh sách nhưng không giống như danh sách, nó là bất biến và các phần tử của nó được đặt trong dấu ngoặc đơn
Một cách khác để chúng ta có thể tạo danh sách là sử dụng cú pháp sau
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']2
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']3
Điều đáng chú ý là danh sách Python được chuyển qua tham chiếu. Có nghĩa là, việc chỉ định một danh sách sẽ cung cấp danh tính vị trí bộ nhớ của nó. Sai lầm mà nhiều người mới mắc phải là tạo danh sách theo cách này
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']4
Ở đây, chúng tôi có thể nghĩ rằng chúng tôi đã tạo hai danh sách khác nhau, nhưng thực sự chúng tôi chỉ tạo một danh sách. Hãy chứng minh điều này bằng cách sửa đổi một trong các biến
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']5
Chúng tôi nhận thấy rằng việc sửa đổi một biến sẽ thay đổi biến khác. Điều này là do cả hai biến l1 và l2 đều có cùng một định danh vị trí bộ nhớ, vì vậy cả hai đều trỏ đến cùng một đối tượng
Thêm mục vào danh sách
Python có nhiều cách để thêm phần tử vào danh sách của nó. Cách phổ biến nhất là sử dụng phương thức append[]. Các cách khác là sử dụng phương thức Extend[]. Lập chỉ mục và cắt [thêm về những điều này sau] có nhiều khả năng được sử dụng để thay thế các mục trong danh sách
#1] Sử dụng phương thức append[]
Phương thức này lấy một mục duy nhất và thêm nó vào cuối danh sách. Nó không trả về một danh sách mới mà chỉ sửa đổi danh sách tại chỗ [nhờ khả năng thay đổi của nó]
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']6
Vài điều cần lưu ý từ ví dụ trên
- Các mục ở đây có thể là biểu thức, kiểu dữ liệu, trình tự, v.v.
- Phương thức append[] có độ phức tạp về thời gian là [0]1. Có nghĩa là nó là hằng số
#2] Sử dụng phương thức mở rộng[]
Phương thức này lấy một iterable làm đối số của nó và thêm tất cả các mục từ nó vào cuối danh sách. Phương pháp này chủ yếu được sử dụng khi chúng tôi muốn thêm các mục riêng lẻ của chuỗi vào danh sách
Về cơ bản, phương thức mở rộng[] lặp lại đối số của nó và nối từng mục vào danh sách. Cũng giống như phương thức append[], nó không trả về một danh sách mới mà thay đổi danh sách tại chỗ
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']7
Vài điều cần lưu ý từ ví dụ trên
- Một chuỗi có thể lặp lại, vì vậy phương thức mở rộng [] của chúng tôi sẽ lặp lại các ký tự của nó
- Phương thức mở rộng[] có độ phức tạp về thời gian là [0]K trong đó K là độ dài của đối số của nó
Truy cập các mục từ danh sách
Lập chỉ mục và cắt lát là phương tiện phổ biến nhất được sử dụng để truy cập danh sách. Chúng ta cũng có thể truy cập các mục trong danh sách bằng các vòng lặp như vòng lặp for
#1] Lập chỉ mục
Danh sách Python sử dụng hệ thống đánh số dựa trên số không. Có nghĩa là, tất cả các mục của nó được xác định duy nhất bởi một số chỉ mục bắt đầu từ 0 đến n-1 trong đó n là độ dài của danh sách
Hãy xem xét danh sách dưới đây
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']8
Bảng bên dưới hiển thị các chỉ số tương ứng của chúng trong cách đánh số dựa trên số 0 của danh sách
Mụcmàu đỏmàu xanhmàu xanh lámàu vàngđenChỉ số01234
Từ bảng trên, chúng ta thấy rằng mục đầu tiên['đỏ'] nằm ở vị trí chỉ mục 0 và mục cuối cùng['đen' ] nằm ở vị trí chỉ mục 4[n-1] trong đó n=5[chiều dài của đối tượng
Như chúng ta đã thấy trong phần đặc trưng ở trên, danh sách Python được sắp xếp theo trình tự. Điều này cho phép chúng tôi sử dụng lập chỉ mục để truy cập và thao tác mục của nó một cách dễ dàng
Hãy sử dụng lập chỉ mục để truy cập các mục tại các chỉ số cụ thể của đối tượng màu sắc được tạo ở trên
>>> numbers = ['one','two','three','four','five'] >>> numbers ['one','two','three','four','five']9
Ghi chú. Câu lệnh cuối cùng ở trên đang cố truy cập một mục ở vị trí chỉ mục 9 từ một đối tượng danh sách có độ dài 5. Trong danh sách Python, việc truy cập một mục tại một chỉ mục không tồn tại sẽ làm tăng ngoại lệ.
Một khái niệm quan trọng về lập chỉ mục là chúng ta có thể sử dụng lập chỉ mục phủ định. e. chúng ta có thể truy cập các mục của danh sách theo cách đảo ngược bắt đầu từ -1 cho mục cuối cùng và kết thúc tại -n cho mục cuối cùng trong đó n là độ dài của đối tượng danh sách
Trong bảng trên, nếu chúng ta sử dụng chỉ mục tiêu cực, nó sẽ giống như hình bên dưới
Mụcđỏxanh lụcvàngđenChỉ số-5-4-3-2-1
Hãy sử dụng lập chỉ mục phủ định để truy cập một số mục của đối tượng màu được tạo ở trên
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]0
#2] Cắt lát
Không giống như lập chỉ mục chỉ trả về một mục, mặt khác, việc cắt có thể trả về một loạt các mục
Nó có cú pháp sau
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]1
Khi n là số chỉ mục nơi lát cắt bắt đầu [mặc định là 0] và m là số chỉ mục duy nhất nơi lát cắt kết thúc [mặc định là độ dài-1]. Chúng được ngăn cách bởi dấu hai chấm [. ]
Xem xét ví dụ dưới đây sử dụng cắt để truy cập các mục tại các chỉ số cụ thể của đối tượng màu sắc được tạo ở trên
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]2
Theo cú pháp L[n. m], n mặc định là 0 và m mặc định là độ dài của danh sách. Vì vậy, trong ví dụ 1 và 3 ở trên, chúng ta có thể bỏ qua n và m dưới dạng màu sắc[. 2] và màu sắc [2. ] tương ứng. Hoặc là [. ] trong trường hợp này trả về một bản sao nông của toàn bộ đối tượng danh sách
Chúng ta cũng có thể sử dụng số chỉ mục âm trong khi cắt danh sách. Điều này thường được sử dụng khi chúng tôi muốn truy cập danh sách theo cách đảo ngược
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]3
Ngoài ra, có một tham số thứ ba hỗ trợ cắt được gọi là [các] bước. Nó xác định có bao nhiêu mục sẽ di chuyển về phía trước sau khi mục đầu tiên được lấy từ danh sách. Nó mặc định là 1
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]4
Sử dụng danh sách màu tương tự của chúng tôi được xác định ở trên, hãy sử dụng tham số thứ ba của lát cắt để di chuyển 2 bước
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]5
#3] Sử dụng vòng lặp
Các vòng lặp chủ yếu được sử dụng để truy cập các mục trong danh sách để thao tác với các mục. Vì vậy, trong trường hợp chúng ta muốn thao tác trên các mục của danh sách, chúng ta có thể sử dụng vòng lặp for để truy cập các mục và chuyển chúng cho thao tác trên
Giả sử, chúng tôi muốn đếm số lượng chữ cái cho mỗi mục. Chúng ta có thể sử dụng vòng lặp for để thực hiện điều đó
Mở trình chỉnh sửa và dán mã bên dưới
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]6
đầu ra
Để kết thúc phần này, chúng ta hãy xem xét hai điều thú vị có thể được thực hiện bằng cách cắt lát
Tạo một bản sao nông của danh sách
Đây là cách cơ bản để sử dụng phương thức copy[] của đối tượng danh sách hoặc chức năng tích hợp sẵn copy. sao chép. Tuy nhiên, điều này có thể đạt được bằng cách cắt
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]7
Đảo ngược một danh sách
Cách cơ bản là sử dụng phương thức đảo ngược của đối tượng danh sách hoặc hàm có sẵn. Tuy nhiên, điều này có thể đạt được bằng cách cắt
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]8
Xóa các mục khỏi danh sách
Vì chúng tôi có thể thêm bao nhiêu mục vào danh sách, chúng cũng có thể bị xóa khỏi danh sách. Ba cách mà các mục có thể được gỡ bỏ là
#1] Sử dụng câu lệnh del
Nó có cú pháp sau
>>> numbers = ['one',2,3,'four',5.0] >>> numbers ['one',2,3,'four',5.0]9
Danh sách đích[target_list] có thể là toàn bộ danh sách [trong trường hợp bạn muốn xóa danh sách] hoặc một mục hoặc nhiều mục trong danh sách [trong trường hợp này bạn sử dụng lập chỉ mục hoặc cắt]
Hãy xem xét ví dụ bên dưới .
Giả sử, chúng tôi muốn xóa một số mục khỏi danh sách màu được tạo ở trên
// a sketch showing the list of items and their types as annotation0
Ghi chú. Câu lệnh del xóa tại chỗ i. e. , nó sẽ sửa đổi đối tượng danh sách ban đầu thay vì trả về một đối tượng danh sách mới.
#2] Sử dụng danh sách. xóa[x]
Nó xóa mục đầu tiên khỏi danh sách có giá trị bằng x. Nó làm tăng ValueError nếu không có mục nào như vậy
Phương pháp này được sử dụng chủ yếu để xóa các mục khỏi danh sách theo tên, không giống như câu lệnh del sử dụng lập chỉ mục và cắt
// a sketch showing the list of items and their types as annotation1
Ghi chú. Phương thức remove[] xóa đối tượng danh sách ở vị trí i. e. , nó sẽ sửa đổi đối tượng danh sách ban đầu thay vì trả về một đối tượng danh sách mới.
#3] Sử dụng danh sách. bốp[[i]]
Nó xóa và trả về mục ở vị trí đã cho trong một đối tượng danh sách. Nếu không cung cấp i[index], nó sẽ xóa và trả về mục cuối cùng trong danh sách
Ghi chú. Dấu ngoặc vuông xung quanh i ở trên không có nghĩa là danh sách i, mà có nghĩa là tôi là tùy chọn.
// a sketch showing the list of items and their types as annotation2
Ghi chú. Danh sách. phương thức pop[[i]] xóa ở vị trí i. e. , nó sẽ sửa đổi đối tượng danh sách ban đầu thay vì trả về một đối tượng danh sách mới. Ngoài ra, nó trả về mục đã bị xóa khỏi danh sách
Thay thế các mục từ danh sách
Thay thế vật phẩm khá đơn giản. Trong một trong những phần trên, chúng tôi đã thấy lập chỉ mục và cắt. Chúng có thể được sử dụng để truy cập và xóa các mục khỏi danh sách
#1] Thay thế bằng lập chỉ mục
// a sketch showing the list of items and their types as annotation3_______3_______4
#2] Thay thế bằng cách cắt lát
// a sketch showing the list of items and their types as annotation5
Ghi chú. Giá trị phải là một , nếu không sẽ có ngoại lệ.
// a sketch showing the list of items and their types as annotation6
Các câu hỏi thường gặp
Q #1] Danh sách các danh sách trong Python là gì?
Câu trả lời. Danh sách các danh sách trong Python là một danh sách chứa các danh sách là mục của nó
Ví dụ
// a sketch showing the list of items and their types as annotation7
Nó cũng có thể được gọi là một danh sách lồng nhau
Q #2] Làm thế nào để bạn khai báo một danh sách trong Python?
Câu trả lời. Trong Python, một danh sách có thể được khai báo theo hai cách. Bằng cách sử dụng hàm tích hợp list[] hoặc bằng cách sử dụng ký hiệu ngoặc []. list[] nhận một iterable và [] nhận các mục thuộc bất kỳ loại nào được phân tách bằng dấu phẩy
// a sketch showing the list of items and their types as annotation8
Q #3] Bạn có thể đặt một danh sách trong Python không?
Câu trả lời. Có, chúng ta có thể đặt một danh sách bên trong một danh sách. Trên thực tế, một danh sách là một chuỗi chứa các mục thuộc bất kỳ loại dữ liệu nào.
Q #4] List[] làm gì trong Python?
Câu trả lời. list[] là một hàm tích hợp trong Python dùng để tạo một đối tượng danh sách. Nó lấy một iterable làm đối số của nó
// a sketch showing the list of items and their types as annotation9
Q #5] Danh sách Python có thể chứa các loại khác nhau không?
Câu trả lời. Danh sách là một chuỗi vùng chứa chứa các mục thuộc bất kỳ loại dữ liệu nào [danh sách, bộ dữ liệu, số nguyên, dấu phẩy, chuỗi, v.v.]
Tìm hiểu thêm về danh sách trong Python
Cấu trúc dữ liệu là gì?
Máy tính được sử dụng để lưu trữ một số lượng lớn dữ liệu hoặc xử lý một số lượng lớn dữ liệu với tốc độ và độ chính xác cao. Do đó, tốt nhất là lưu trữ dữ liệu vĩnh viễn để truy cập nhanh
Trong khi quá trình xử lý dữ liệu diễn ra, nó sẽ diễn ra trong thời gian ngắn nhất có thể mà không làm giảm độ chính xác. Chúng tôi sử dụng cấu trúc dữ liệu để xử lý dữ liệu một cách có tổ chức và lưu trữ dữ liệu trong bộ nhớ để xử lý
Vì Python là ngôn ngữ lập trình cấp cao và được giải thích, nên việc sử dụng cấu trúc dữ liệu trong Python là rất quan trọng
Danh sách là gì?
Danh sách là một cấu trúc dữ liệu được sử dụng để lưu trữ nhiều dữ liệu cùng một lúc
Dữ liệu được lưu trữ trong một danh sách là đồng nhất và điều đó làm cho nó trở thành tính năng mạnh mẽ nhất của danh sách trong Python. Chúng tôi có thể lưu trữ nhiều dữ liệu thuộc các loại dữ liệu khác nhau như Chuỗi, Số nguyên và đối tượng trong một danh sách
Danh sách có thể thay đổi trong Python, do đó dữ liệu có thể được thay đổi bất cứ lúc nào ngay cả sau khi tạo. Danh sách rất mạnh để triển khai ngăn xếp và hàng đợi trong Python
Như đã thảo luận trước đó, danh sách lưu trữ dữ liệu theo trình tự có thứ tự và dữ liệu được lưu trữ trong danh sách được truy cập bằng chỉ mục của chúng và đối với danh sách, chỉ mục sẽ luôn bắt đầu từ Không. Mỗi phần tử có một vị trí cụ thể trong danh sách và tất cả dữ liệu đó được truy cập với sự trợ giúp của chỉ mục
Trong danh sách, chúng ta có thể lưu trữ cùng một giá trị nhiều lần và mỗi dữ liệu sẽ được coi là một phần tử riêng biệt và duy nhất. Danh sách là cách tốt nhất để lưu trữ dữ liệu và lặp lại chúng sau này
Tạo một danh sách
Dữ liệu trong danh sách được lưu trữ phân tách bằng dấu phẩy và đặt trong dấu ngoặc vuông [[]]. Các mục trong danh sách không nhất thiết phải cùng loại
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]0
ví dụ 1
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]1
ví dụ 2
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]2
ví dụ 3
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]3
Ví dụ 4
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]4
Trong các ví dụ trên, chúng ta có thể quan sát thấy rằng chúng ta đã lưu trữ các mục có kiểu dữ liệu khác nhau được phân tách bằng dấu phẩy, 2 và 5 thuộc kiểu Integer, 6. 7 thuộc loại float và 'Hi' thuộc loại Chuỗi, tất cả các mục này được đặt trong một danh sách và điều đó làm cho nó trở thành một Danh sách
Chúng ta cũng có thể khai báo một danh sách trống. Chúng tôi cũng có thể khai báo danh sách bên trong một danh sách khác và chúng tôi gọi đây là danh sách lồng nhau
Ví dụ 5
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]5
Trong ví dụ trên, bạn có thể quan sát thấy rằng một danh sách đã được khai báo bên trong một danh sách khác
Truy cập các giá trị trong danh sách
Có nhiều cách khác nhau để chúng ta có thể truy cập các mục có trong danh sách trong Python
Với sự trợ giúp của chỉ mục, chúng ta có thể truy cập các phần tử của danh sách. Chỉ mục bắt đầu từ 0 và chỉ mục phải luôn là Số nguyên. Nếu chúng ta sử dụng một chỉ mục không phải là số nguyên như float, thì nó sẽ dẫn đến TypeError
ví dụ 1
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]6
đầu ra
danh sách là. [2, 5, 6. 7, ‘Xin chào’]
đầu ra
Trong ví dụ trên, chúng tôi đang in trực tiếp danh sách bằng chức năng in, chúng tôi không truy cập phần tử riêng lẻ từ danh sách
Hãy truy cập phần tử riêng lẻ từ danh sách
Thí dụ. 2
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]7
đầu ra
Phần tử thứ hai của danh sách là. 5
đầu ra
Trong ví dụ trên, bạn có thể quan sát thấy rằng chúng tôi đang in phần tử thứ hai của danh sách là 5, nhưng bạn có thể nhận được câu hỏi tại sao trong câu lệnh in, chúng tôi lại in Danh sách[1]?
Thí dụ. 3
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]8
đầu ra
Phần tử đầu tiên trong Danh sách là. 2
Phần tử cuối cùng trong Danh sách là. Xin chào
đầu ra
Thí dụ. 4
def test[]: """This is a function""" print["This is a test"] if __name__ == '__main__': print[test] # return instance object of function 'test' instance = type[test] print[instance] # create a list of colors colors = ["red","blue","green"] print[colors] # create a list holding all the various data types defined above, including boolean. my_list = [test, instance, colors, False] print[my_list]9
đầu ra
Phần tử đầu tiên của danh sách là. tôi
Các phần tử hiện diện bên trong một danh sách khác là. 5
đầu ra
Trong chương trình trên nếu quan sát kỹ các bạn có thể thấy chúng ta đang truy cập các phần tử từ danh sách lồng nhau
Bên trong dữ liệu sẽ được lưu trữ ở định dạng ma trận như hình bên dưới
Xin chào
2 4 5
Do đó, khi chúng ta cố gắng truy cập List[0][1] thì nó sẽ trỏ đến hàng 1 và cột 2, do đó dữ liệu sẽ là 'i'
Tương tự khi ta truy cập vào List[1][2] thì nó sẽ trỏ đến hàng thứ 2 và cột thứ 3, như vậy dữ liệu sẽ là 5
Lập chỉ mục tiêu cực
Chúng tôi cũng có thể truy cập dữ liệu bằng cách sử dụng chỉ mục phủ định. Chỉ mục âm sẽ luôn bắt đầu từ -1 và -1 đề cập đến phần tử cuối cùng và -2 đề cập đến mục thứ hai cuối cùng, v.v.
Thí dụ. 1
>>> ['a','b','c','d'] == ['a','c','b','d'] False0
đầu ra
Phần tử cuối cùng trong danh sách là. 3
đầu ra
Thí dụ. 2
>>> ['a','b','c','d'] == ['a','c','b','d'] False1
đầu ra
Phần tử thứ hai trong danh sách là. 5
đầu ra
Cắt lát danh sách
Sử dụng toán tử lát cắt [. ] chúng ta có thể truy cập một loạt các phần tử từ danh sách
Thí dụ. 1
>>> ['a','b','c','d'] == ['a','c','b','d'] False2
đầu ra
Các phần tử từ thứ 2 đến thứ 5 là. [2, 3, 4, 5]
Các phần tử bắt đầu từ thứ 2 là. [1, 2, 3, 4]
Phần tử thứ 4 đến hết là. [4, 5, 6, 7]
Các yếu tố từ đầu đến cuối là. [1, 2, 3, 4, 5, 6, 7]
đầu ra
Chúng ta cũng có thể truy cập các phần tử có trong danh sách bằng cách sử dụng vòng lặp for
Thí dụ. 2
>>> ['a','b','c','d'] == ['a','c','b','d'] False3
đầu ra
1
2
3
4
5
6
7
đầu ra
Hãy nhớ định dạng lập chỉ mục bên dưới
HELLO5794012345678-9-8-7-6-5-4-3-2-1
Như đã thảo luận trước đó, Danh sách trong python có thể thay đổi, có nghĩa là các phần tử có thể được thay đổi ngay cả khi đó là Số nguyên hoặc Chuỗi hoặc bất kỳ kiểu dữ liệu nào
Chúng ta có thể cập nhật danh sách bằng toán tử gán
Thí dụ. 3
>>> ['a','b','c','d'] == ['a','c','b','d'] False4
đầu ra
Danh sách cập nhật là. [7, 4, 6, 9]
đầu ra
Trong ví dụ trên, chúng tôi đang cập nhật phần tử đầu tiên của danh sách '2' bằng phần tử mới '7'
Thí dụ. 4
>>> ['a','b','c','d'] == ['a','c','b','d'] False5
đầu ra
Danh Sách Cập Nhật bây giờ là. [2, 5, 2, 4, 9, 0, 7]
Trong ví dụ trên, chúng tôi đang cập nhật danh sách dữ liệu vào danh sách
đầu ra
Thêm phần tử vào danh sách
Có một số cách để chúng ta có thể thêm các phần tử vào danh sách và python có một hàm dựng sẵn gọi là append[]
Sử dụng append[], chúng ta chỉ thêm được một phần tử vào danh sách, nếu muốn thêm nhiều phần tử vào danh sách thì chúng ta phải sử dụng vòng lặp for. hàm append[] luôn thêm phần tử vào cuối danh sách, hàm append[] chỉ nhận một đối số
Nếu bạn muốn thêm phần tử vào một vị trí cụ thể thì bạn chỉ cần sử dụng phương thức insert[]. insert[] nhận hai đối số i. e. vị trí và giá trị, vị trí đề cập đến chỉ mục, trong đó các phần tử cần được thêm vào và giá trị đề cập đến phần tử được thêm vào danh sách
Có một phương thức gọi là mở rộng[], sử dụng phương thức này chúng ta có thể thêm các phần tử vào danh sách. phương thức expand[] được sử dụng để thêm danh sách các phần tử vào danh sách. Tương tự như phương thức append[] và phương thức expand[], nó cũng sẽ thêm phần tử vào cuối danh sách
Thí dụ. 1
>>> ['a','b','c','d'] == ['a','c','b','d'] False6
đầu ra
Danh sách trước khi thêm giá trị là. ["Chào buổi sáng"]
Danh sách sau khi nối thêm các giá trị là. [“Xin chào”, “Chào buổi sáng”, “Trăn”, “Xin chào”]
Trong ví dụ trên, chúng tôi đang thêm các giá trị 'Python' và 'Hi' vào cuối Danh sách
đầu ra
Thí dụ. 2
>>> ['a','b','c','d'] == ['a','c','b','d'] False7
đầu ra
Danh sách trước khi thêm giá trị là. ["Chào buổi sáng"]
Độ dài của danh sách trước khi nối thêm là. 2
Danh sách sau khi nối thêm các giá trị là. [“Xin chào”, “Chào buổi sáng”, “Trăn”, “Xin chào”]
Độ dài của danh sách sau khi nối thêm là. 4
Chúng ta có thể tìm độ dài của danh sách bằng cách sử dụng hàm len[], như trong ví dụ trên
đầu ra
Chúng ta cũng có thể thêm nhiều giá trị vào danh sách bằng vòng lặp for
Thí dụ. 3
>>> ['a','b','c','d'] == ['a','c','b','d'] False8
đầu ra
Danh sách trước khi thêm phần tử là. [7, 9, 8]
Độ dài của Danh sách trước khi thêm phần tử là. 3
Danh sách sau khi thêm phần tử là. [7, 9, 8, 2, 3, 4, 5]
Độ dài của Danh sách sau khi thêm phần tử là. 7
đầu ra
Điều gì xảy ra nếu chúng ta thêm danh sách danh sách vào danh sách?
Thí dụ. 4
>>> ['a','b','c','d'] == ['a','c','b','d'] False9
đầu ra
List1 sau khi thêm List2 là. [“Chào”, “Trăn”, [1, 5, 7, 2]]
Các bạn để ý trong ví dụ trên, khi chúng ta nối List2 với List1 thì List1 sẽ trở thành danh sách lồng nhau
đầu ra
Nếu bạn không muốn tạo danh sách dưới dạng danh sách lồng nhau sau khi nối thêm danh sách, thì tốt hơn là sử dụng phương thức Extend[]
Thí dụ. 5
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]0
đầu ra
List1 sau khi thêm List2 là. [“Chào”, “Trăn”, 1, 5, 7, 2]
Khi chúng ta sử dụng phương thức expand[] thì các phần tử của List1 sẽ được mở rộng bằng các phần tử của List2. Hãy nhớ rằng nó sẽ không nối danh sách khi chúng ta sử dụng phương thức Extend[]
đầu ra
Khi bạn mở rộng một danh sách bằng một chuỗi, thì nó sẽ nối từng ký tự của chuỗi vào danh sách, vì một chuỗi có thể lặp lại
Thí dụ. 6
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]1
đầu ra
Danh sách sau khi mở rộng Chuỗi là. [1, 5, 7, 2, 'P', 'y', 't', 'h', 'o', 'n']
đầu ra
Danh sách nối thêm [] so với mở rộng []
Hãy cùng xem một số ví dụ về hàm mở rộng[] và append[]
Thí dụ. 1
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]2
đầu ra
Các phần tử của Danh sách là. [“Xin chào”, 1, “Xin chào”, 2, 5]
Danh sách sau khi nối Chuỗi là. [“Xin chào”, 1, “Xin chào”, 2, 5, “Trăn”]
Danh sách sau khi nối thêm danh sách là. [“Xin chào”, 1, “Xin chào”, 2, 5, “Trăn”, [“một”, “hai”, 3]]
List1 sau khi mở rộng List2 là. [“Xin chào”, 1, “Xin chào”, 2, 5, “Trăn”, [“một”, “hai”, 3], “Táo”, “Cam”, 2, 8]
đầu ra
Thí dụ. 2
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]3
đầu ra
Danh sách trước khi chèn là. [“Táo”, “Cam”, “Xoài”, “Dâu tây”]
Danh sách sau khi chèn là. [“Táo”, “Cam”, “Dưa hấu”, “Xoài”, “Dâu tây”]
đầu ra
Như chúng ta đã thảo luận trước đó, phương thức insert[] được sử dụng để chèn các giá trị vào một chỉ mục cụ thể của danh sách
Thí dụ. 3
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]4
đầu ra
Danh sách sau khi thêm các phần tử là. [2, 4, 6, 8, 1, 3, 5, 7]
Sau khi thêm các phần tử giống nhau nhiều lần là. [‘Chào’, ‘Chào’, ‘Chào’, ‘Chào’, ‘Chào’]
đầu ra
Xóa hoặc loại bỏ các phần tử khỏi danh sách
Chúng ta cũng có thể xóa hoặc loại bỏ các phần tử khỏi danh sách bằng cách sử dụng các câu lệnh del và remove[]
Hãy xem trong ví dụ dưới đây
Thí dụ. 1
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]5
đầu ra
Danh sách trước khi xóa phần tử thứ 3 là. [1, 2, 3, 4, 5, 6, 7, 8, 9]
Danh sách sau khi xóa phần tử thứ 3 là. [1, 2, 3, 5, 6, 7, 8, 9]
Danh sách sau khi xóa nhiều phần tử là. [1, 5, 6, 7, 8, 9]
Trong ví dụ trên, bạn có thể quan sát thấy rằng chúng tôi đã sử dụng câu lệnh del để xóa một phần tử hoặc nhiều câu lệnh khỏi danh sách
đầu ra
Bây giờ chúng ta sẽ xem về phương thức remove[]
Thí dụ. 2
def veryfiy_mutability[]: # create a list l = [9,0,4,3,5] print["Display before modifying"] print["List: {}\nId: {}".format[l,id[l]]] # modify the list by replacing the item at # index 3 to the item -2. l[3] = -2 print["Display after modifying"] print["List: {}\nId: {}".format[l,id[l]]] if __name__ == '__main__': veryfiy_mutability[]6
đầu ra
Danh sách trước khi loại bỏ một phần tử là. [1, 2, 3, 4, 5, 6, 7]
Danh sách sau khi loại bỏ một phần tử là. [1, 2, 4, 5, 6, 7]
Danh sách sau khi bật phần tử là. [1, 2, 4, 5, 6]
Trong ví dụ trên, bạn có thể quan sát thấy rằng chúng ta đang xóa một phần tử khỏi danh sách bằng phương thức remove[]. Phương thức pop[] được sử dụng để xóa/xóa phần tử cuối cùng khỏi danh sách
đầu ra
Liệt kê các phương thức
MethodsDescriptionclear[] Để xóa tất cả các phần tử khỏi danh sách. append[] Để thêm phần tử vào cuối danh sách. insert[] Để chèn phần tử vào một chỉ mục cụ thể của danh sách. Extend[] Để thêm danh sách các phần tử vào cuối danh sách. đếm [] Để trả về số phần tử có giá trị cụ thể. index[] Để trả về chỉ số của phần tử đầu tiên. pop[] Để xóa/xóa phần tử khỏi phần tử cuối cùng trong danh sách. Reverse[] Để đảo ngược một danh sách hiện có. remove[] Để xóa các phần tử khỏi danh sách
Phần kết luận
Trong hướng dẫn này, chúng ta đã xem xét một số đặc điểm của Danh sách Python cùng với các cách khác nhau để thao tác với danh sách, chẳng hạn như tạo danh sách, truy cập các mục từ danh sách và thay thế các mục từ danh sách