List giống như các mảng có kích thước động, được khai báo bằng các ngôn ngữ khác (vectơ trong C ++ và ArrayList trong Java). List không nhất thiết phải đồng nhất làm cho nó trở thành một công cụ mạnh nhất trong Python. Một list có thể chứa DataTypes như Integers, String, cũng như các Đối tượng. List có thể thay đổi, và do đó, chúng có thể được thay đổi ngay cả sau khi tạo.
List trong Python được sắp xếp và có số lượng xác định. Các phần tử trong list được lập chỉ mục theo một chuỗi xác định và việc lập chỉ mục của list được thực hiện với 0 là chỉ mục đầu tiên. Mỗi phần tử trong list có vị trí xác định trong list, cho phép sao chép các phần tử trong list, với mỗi phần tử có vị trí và độ tin cậy riêng biệt.
Lưu ý- List là một công cụ hữu ích để lưu giữ một chuỗi dữ liệu và lặp lại trên đó.
Nội dung chính
1. Tạo một list
List trong Python có thể được tạo bằng cách chỉ cần đặt chuỗi bên trong dấu ngoặc vuông []. Không giống như các Bộ, list không cần chức năng tích hợp để tạo list.
Lưu ý – Không giống như Bộ, list có thể chứa các yếu tố có thể thay đổi.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python program to demonstrate
# Creation of List
# Creating a List
List = []
print("Blank List: ")
print(List)
# Creating a List of numbers
List = [10, 20, 14]
print("\nList of numbers: ")
print(List)
# Creating a List of strings and accessing
# using index
List = ["Cafedev", "For", "Cafedev"]
print("\nList Items: ")
print(List[0])
print(List[2])
# Creating a Multi-Dimensional List
# (By Nesting a list inside a List)
List = [['Cafedev', 'For'] , ['Cafedev']]
print("\nMulti-Dimensional List: ")
print(List)
Kết quả:
Blank List:
[]
List of numbers:
[10, 20, 14]
List Items
Cafedev
Cafedev
Multi-Dimensional List:
[['Cafedev', 'For'], ['Cafedev']]
2. Tạo một list với nhiều yếu tố riêng biệt hoặc trùng lặp
Một list có thể chứa các giá trị trùng lặp với các vị trí riêng biệt của chúng nên do đó, nhiều giá trị riêng biệt hoặc trùng lặp có thể được chuyển qua dưới dạng một chuỗi tại thời điểm tạo list.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Creating a List with
# the use of Numbers
# (Having duplicate values)
List = [1, 2, 4, 4, 3, 3, 3, 6, 5]
print("\nList with the use of Numbers: ")
print(List)
# Creating a List with
# mixed type of values
# (Having numbers and strings)
List = [1, 2, 'Cafedev', 4, 'For', 6, 'Cafedev']
print("\nList with the use of Mixed Values: ")
print(List)
Kết quả:
List with the use of Numbers:
[1, 2, 4, 4, 3, 3, 3, 6, 5]
List with the use of Mixed Values:
[1, 2, 'Cafedev', 4, 'For', 6, 'Cafedev']
2.1 Biết kích thước của List
# Creating a List
List1 = []
print(len(List1))
# Creating a List of numbers
List2 = [10, 20, 14]
print(len(List2))
Kết quả:
0
3
2.2 Thêm các yếu tố vào list
Sử dụng phương thức append()
Các yếu tố có thể được thêm vào List bằng cách sử dụng hàm tích hợp append(). Chỉ có thể thêm một phần tử tại một thời điểm vào list bằng cách sử dụng phương thức append(), để thêm nhiều phần tử với append()phương thức, người ta sử dụng các vòng lặp. Các tuple cũng có thể được thêm vào List với việc sử dụng phương thức append vì các tuple là bất biến. Không giống như Set, List cũng có thể được thêm vào list có sẵn bằng việc sử dụng phương thức append().
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python program to demonstrate
# Addition of elements in a List
# Creating a List
List = []
print("Initial blank List: ")
print(List)
# Addition of Elements
# in the List
List.append(1)
List.append(2)
List.append(4)
print("\nList after Addition of Three elements: ")
print(List)
# Adding elements to the List
# using Iterator
for i in range(1, 4):
List.append(i)
print("\nList after Addition of elements from 1-3: ")
print(List)
# Adding Tuples to the List
List.append((5, 6))
print("\nList after Addition of a Tuple: ")
print(List)
# Addition of List to a List
List2 = ['For', 'Cafedev']
List.append(List2)
print("\nList after Addition of a List: ")
print(List)
Kết quả:
Initial blank List:
[]
List after Addition of Three elements:
[1, 2, 4]
List after Addition of elements from 1-3:
[1, 2, 4, 1, 2, 3]
List after Addition of a Tuple:
[1, 2, 4, 1, 2, 3, (5, 6)]
List after Addition of a List:
[1, 2, 4, 1, 2, 3, (5, 6), ['For', 'Cafedev']]
3. Sử dụng phương thức insert()
Phương thức append() chỉ hoạt động để thêm các phần tử vào cuối List, để thêm phần tử vào vị trí mong muốn, ta sử dụng phương thức insert(). Không giống như phương thức append() chỉ mất một đối số, phương thức insert() yêu cầu hai đối số (vị trí, giá trị).
# Python program to demonstrate
# Addition of elements in a List
# Creating a List
List = [1,2,3,4]
print("Initial List: ")
print(List)
# Addition of Element at
# specific Position
# (using Insert Method)
List.insert(3, 12)
List.insert(0, 'Cafedev')
print("\nList after performing Insert Operation: ")
print(List)
Kết quả:
Initial List:
[1, 2, 3, 4]
List after performing Insert Operation:
['Cafedev', 1, 2, 3, 12, 4]
4. Sử dụng phương thức extend()
Ngoài hai phương thức append()và insert(), có thêm một phương thức để thêm các yếu tố, đó là extend(), phương thức này được sử dụng để thêm nhiều yếu tố cùng một lúc vào cuối list.
Lưu ý – phương thức append() và extend() chỉ có thể thêm các phần tử ở cuối.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python program to demonstrate
# Addition of elements in a List
# Creating a List
List = [1,2,3,4]
print("Initial List: ")
print(List)
# Addition of multiple elements
# to the List at the end
# (using Extend Method)
List.extend([8, 'Cafedev', 'Always'])
print("\nList after performing Extend Operation: ")
print(List)
Kết quả:
Initial List:
[1, 2, 3, 4]
List after performing Extend Operation:
[1, 2, 3, 4, 8, 'Cafedev', 'Always']
5. Truy cập các phần tử từ List
Để truy cập các mục list, hãy tham khảo số chỉ mục. Sử dụng toán tử chỉ mục [] để truy cập vào một mục trong list. Số chỉ mục phải là một số nguyên. List lồng nhau phải được truy cập bằng việc sử dụng lập chỉ mục lồng nhau.
# Python program to demonstrate
# accessing of element from list
# Creating a List with
# the use of multiple values
List = ["Cafedev", "For", "Cafedev"]
# accessing a element from the
# list using index number
print("Accessing a element from the list")
print(List[0])
print(List[2])
# Creating a Multi-Dimensional List
# (By Nesting a list inside a List)
List = [['Cafedev', 'For'] , ['Cafedev']]
# accessing a element from the
# Multi-Dimensional List using
# index number
print("Acessing a element from a Multi-Dimensional list")
print(List[0][1])
print(List[1][0])
Kết quả:
Accessing a element from the list
Cafedev
Cafedev
Acessing a element from a Multi-Dimensional list
For
Cafedev
6. Lập chỉ mục âm
Trong Python, các chỉ mục chuỗi âm biểu thị các vị trí từ cuối mảng. Thay vì phải tính toán phần bù như trong List[len(List)-3], chỉ cần viết List[-3] là đủ. Lập chỉ mục âm có nghĩa là bắt đầu từ cuối, -1 chỉ đến mục cuối cùng, -2 chỉ đến mục cuối cùng thứ hai, v.v.
List = [1, 2, 'Geeks', 4, 'For', 6, 'Cafedev']
# accessing a element using
# negative indexing
print("Acessing element using negative indexing")
# print the last element of list
print(List[-1])
# print the third last element of list
print(List[-3])
Kết quả:
Acessing element using negative indexing
Cafedev
For
7. Xóa các phần tử khỏi list
7.1 Sử dụng phương thức remove()
Các phần tử có thể được xóa khỏi List bằng cách sử dụng hàm tích hợp remove() nhưng sẽ phát sinh lỗi nếu phần tử không tồn tại trong tập hợp. Phương thức remove() chỉ xóa bỏ một phần tử tại một thời điểm, để xóa bỏ một loạt phần tử, iterator được sử dụng. Các phương thức remove() chỉ loại bỏ các mục nhất định.
Lưu ý – Phương thức remove trong List sẽ chỉ xóa lần xuất hiện đầu tiên của phần tử được tìm kiếm.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python program to demonstrate
# Removal of elements in a List
# Creating a List
List = [1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12]
print("Intial List: ")
print(List)
# Removing elements from List
# using Remove() method
List.remove(5)
List.remove(6)
print("\nList after Removal of two elements: ")
print(List)
# Removing elements from List
# using iterator method
for i in range(1, 5):
List.remove(i)
print("\nList after Removing a range of elements: ")
print(List)
Kết quả:
Intial List:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
List after Removal of two elements:
[1, 2, 3, 4, 7, 8, 9, 10, 11, 12]
List after Removing a range of elements:
[7, 8, 9, 10, 11, 12]
7.2 Sử dụng phương thức pop()
Hàm Pop() cũng có thể được sử dụng để xóa và trả về một phần tử khỏi tập hợp, nhưng theo mặc định, nó chỉ xóa phần tử cuối cùng của tập hợp, để xóa phần tử khỏi một vị trí cụ thể của List, chỉ mục của phần tử được truyền làm đối số cho phương thức pop().
List = [1,2,3,4,5]
# Removing element from the
# Set using the pop() method
List.pop()
print("\nList after popping an element: ")
print(List)
# Removing element at a
# specific location from the
# Set using the pop() method
List.pop(2)
print("\nList after popping a specific element: ")
print(List)
Kết quả:
List after popping an element:
[1, 2, 3, 4]
List after popping a specific element:
[1, 2, 4]
7.3 Cắt một list
Trong List, có nhiều cách để in toàn List với tất cả các phần tử, nhưng để in một chuỗi phần tử cụ thể từ list, chúng ta sử dụng thao tác cắt. Thao tác cắt được thực hiện trên List với việc sử dụng dấu hai chấm (:). Để in các phần tử từ đầu đến một chuỗi, hãy sử dụng [: Index], để in các phần tử từ cuối, hãy sử dụng [:-Index], để in các phần tử từ Chỉ mục cụ thể cho đến hết, hãy sử dụng [Index:], để in các phần tử trong một chuỗi, hãy sử dụng [Start Index: End Index] và để in toàn bộ List với việc sử dụng thao tác cắt, sử dụng [:]. Hơn nữa, để in toàn bộ List theo thứ tự ngược lại, hãy sử dụng [::-1].
Lưu ý – Để in các thành phần của List từ phía sau, hãy sử dụng Chỉ mục phủ định.
[Hình ảnh]
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python program to demonstrate
# Removal of elements in a List
# Creating a List
List = ['G','E','E','K','S','F',
'O','R','G','E','E','K','S']
print("Intial List: ")
print(List)
# Print elements of a range
# using Slice operation
Sliced_List = List[3:8]
print("\nSlicing elements in a range 3-8: ")
print(Sliced_List)
# Print elements from a
# pre-defined point to end
Sliced_List = List[5:]
print("\nElements sliced from 5th "
"element till the end: ")
print(Sliced_List)
# Printing elements from
# beginning till end
Sliced_List = List[:]
print("\nPrinting all elements using slice operation: ")
print(Sliced_List)
Kết quả:
Intial List:
['G', 'E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
Slicing elements in a range 3-8:
['K', 'S', 'F', 'O', 'R']
Elements sliced from 5th element till the end:
['F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
Printing all elements using slice operation:
['G', 'E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
7.4 Cắt list chỉ mục âm
# Creating a List
List = ['G','E','E','K','S','F',
'O','R','G','E','E','K','S']
print("Initial List: ")
print(List)
# Print elements from beginning
# to a pre-defined point using Slice
Sliced_List = List[:-6]
print("\nElements sliced till 6th element from last: ")
print(Sliced_List)
# Print elements of a range
# using negative index List slicing
Sliced_List = List[-6:-1]
print("\nElements sliced from index -6 to -1")
print(Sliced_List)
# Printing elements in reverse
# using Slice operation
Sliced_List = List[::-1]
print("\nPrinting List in reverse: ")
print(Sliced_List)
Kết quả:
Initial List:
['G', 'E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S']
Elements sliced till 6th element from last:
['G', 'E', 'E', 'K', 'S', 'F', 'O']
Elements sliced from index -6 to -1
['R', 'G', 'E', 'E', 'K']
Printing List in reverse:
['S', 'K', 'E', 'E', 'G', 'R', 'O', 'F', 'S', 'K', 'E', 'E', 'G']
8. Các Phương thức trong List
HÀM | MÔ TẢ |
Append() | Thêm một yếu tố vào cuối list |
Extend() | Thêm tất cả các yếu tố của một list vào list khác |
Insert() | Chèn một mục vào chỉ mục được xác định |
Remove() | Xóa một mục khỏi list |
Pop() | Loại bỏ và trả về một phần tử tại chỉ mục đã cho |
Clear() | Xóa tất cả các mục khỏi list |
Index() | Trả về chỉ mục của mục phù hợp đầu tiên |
Count() | Trả về số lượng mục được truyền dưới dạng đối số |
Sort() | Sắp xếp các mục trong một list theo thứ tự tăng dần |
Reverse() | Đảo ngược thứ tự của các mục trong list |
Copy() | Trả về một bản sao của list |
9. Các hàm tích hợp với List
HÀM | MÔ TẢ |
Reduce() | Áp dụng một hàm cụ thể được truyền trong đối số của nó cho tất cả các phần tử list lưu trữ kết quả trung gian và chỉ trả về giá trị tổng cuối cùng |
Sum() | Tổng hợp các số trong list |
Ord() | Trả về một số nguyên biểu thị điểm mã Unicode của ký tự Unicode đã cho |
cmp() | Hàm này trả về 1, nếu list đầu tiên là Lớn hơn so với list thứ hai |
Max() | Trả về phần tử tối đa của list đã cho |
Min() | Trả về phần tử tối thiểu của list đã cho |
All() | Trả về true nếu tất cả phần tử là true hoặc nếu list trống |
Any() | Trả về true nếu bất kỳ phần tử nào của list là true. nếu list trống, trả về false |
len() | Trả về độ dài của list hoặc kích thước của list |
Enumerate() | Trả về đối tượng liệt kê của list |
Accumulate() | áp dụng một hàm cụ thể được truyền trong đối số của nó cho tất cả các phần tử list trả về một list chứa kết quả trung gian |
Filter() | kiểm tra xem mỗi phần tử của list có đúng hay không |
Map() | trả về một list các kết quả sau khi áp dụng hàm đã cho cho từng mục của một lần lặp đã cho |
Lambda() | Hàm này có thể có bất kỳ số lượng đối số nhưng chỉ có một biểu thức, được ước tính và trả về. |
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!