List Trong Python Là Gì? 14 Thao Tác Xử Lý List Trong Python

List trong Python là một dạng dữ liệu linh hoạt cho phép lưu trữ rất nhiều kiểu dữ liệu khác ngay trong nó. Trong bài viết này, hãy cùng MCI tìm hiểu định nghĩa list trong python và 14 thao tác làm việc thường hay được sử dụng với list trong python.
List trong python

1. Định nghĩa List trong Python

List trong Python là một kiểu dữ liệu được dùng rất linh hoạt.  Nó là dãy (sequence) bao gồm các phần tử (element), nó cho phép loại bỏ, hoặc thêm các phần tử vào danh sách, đồng thời cho phép cắt lát (Slice) các phần tử.

Để viết một danh sách, bạn đặt các phần tử nằm trong cặp ngoặc vuông [ ] và ngăn cách nhau bởi dấu phẩy. Trong kiểu dữ liệu list, các phần tử được đánh chỉ số (index) từ trái sang phải bắt đầu từ chỉ số 0.

Ví dụ:

1
2
3
list1 = ['java', 'python', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

2. Truy xuất từng phần tử của list trong python

2.1 Truy xuất phần tử từ cuối list


List trong Python cho phép lập chỉ mục âm cho các chuỗi. Trong đó Index -1 là phần tử cuối cùng, -2 là phần tử thứ 2 từ cuối cùng lên. Hiểu một cách đơn giản là chúng ta sẽ dùng index âm khi cần đếm phần tử của chuỗi ngược từ cuối lên đầu.

1
2
list1 = ['java', 'python', 'php', 'c++']
print(list1[-1])

Kết quả:
c++

2.2 Tạo các list nhỏ hơn từ list lớn trong python

Index (chỉ mục) của list:
Sử dụng toán tử index [] để truy cập vào một phần tử của list trong python. Index sẽ bắt đầu từ 0, do vậy khi list có chứa 5 phần tử, chúng ta sẽ sử dụng toán tử index từ 0 đến 4. Truy cập vào phần tử có index khác index của list sẽ làm phát sinh lỗi IndexError. Index phải là một số nguyên, không thể sử dụng float, hay kiểu dữ liệu khác, sẽ tạo lỗi TypeError.

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
# TypeError: list indices must be integers or slices, not float
# TypeError: index của list phải là số nguyên hoặc slice, không phải số thập phân
qtm_list[2.0]

Các List lồng nhau trong python có thể truy cập bằng index lồng nhau:

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
# Output: q
print(qtm_list[0])
# Output: a
print(qtm_list[2])
# Output: t
print(qtm_list[4])
# List lồng nhau
ln_list = ["Happy", [1,3,5,9]]
# Index lồng nhau
# Output: a
print(ln_list[0][1])
# Output: 9
print(ln_list[1][3])

3. Gán các phần tử trong list trong python với phần tử khác bằng vòng lặp For … In…

Chúng ta có thể gán các phần tử của một list trong python bằng cách sử dụng vòng lặp For trong python. Ví dụ như sau:


1
2
3
fruits = ["apple", "banana", "guava"]
for x in fruits:
    print(x)

Kết quả:
apple
banana
guava

4. Đếm số phần tử của list trong python với hàm len()

Để đếm số lượng phần tử có trong list trong python, chúng ta có thể sử dụng hàm Len() với cú pháp như sau: Len(list1). Trong đó list1 là list mà bạn đang cần đếm số lượng phần tử.

Ví dụ:

list = ['A', 'B', 'C']
print(len(list))
#Kết quả: 3

5. Đếm số lần xuất hiện của phần tử trong list trong python với hàm count()

Khi sử dụng hàm count(), chúng ta có thể đếm được số lần xuất hiện của một phần tử trong một list trong python với cú pháp như sau: mylist.count(val)
Trong đó:

  • mylist là list mà các bạn cần kiểm tra.
  • val là phần tử mà bạn muốn tìm và đếm trong list mylist.

Ví dụ:

list = ['A', 'B', 'C']
print(list.count('A'))
# Kết quả: 1

6. Tìm vị trí của một phần tử trong list trong python thông qua chỉ số index()

Các thức truy cập và tìm vị trí bằng index với các phần tử trong list này sẽ trả về index xuất hiện đầu tiên của phần tử mà bạn muốn tìm và nếu như không tìm thấy thì nó sẽ gọi exception.

Cú pháp sử dụng index như sau: mylist.index(val)

Trong đó:

  • mylist là list mà các bạn cần kiểm tra.
  • val là phần tử mà bạn muốn tìm trong list mylist.

Ví dụ:

list = ['A', 'B', 'C']
print(list.index('B'))
# Kết quả: 1
print(list.index('D'))
# Kết quả: ValueError: 'D' is not in list

7. Các hiển thị phần tử và vị trí tương ứng trong list trong python với hàm enumerate()

Khi sử dụng kết hợp với list trong python, hàm enumerate() cho phép truy nhập vòng lặp qua các thành phần của một collection một cách lần lượt trong khi vẫn giữ index item hiện tại của collection đó.

Ví dụ:

names = ['Bob', 'Alice', 'Guido']
for index, value in enumerate(names):
    print(f'{index}: {value}')
//output: 
0: Bob
1: Alice
2: Guido

Trong ví dụ minh hoạ trên, việc sử dụng hàm enumerate sẽ lần lượt in ra danh sách mảng cùng với chỉ số index của nó bắt đầu từ 0.

8. Thay đổi phần tử của list trong python

Để thay đổi giá trị của một phần tử được chỉ định, ta dùng chỉ số và toán tử gán =, ví dụ:

1
2
3
fruits = ["apple", "banana", "guava"]
fruits[1] = "*orange*"
print(fruits)

Kết quả:
['apple', '*orange*', 'guava']

9. Thêm phần tử và nối list trong python với hàm append() & insert() & extend()

9.1 Thêm phần tử vào list trong python với hàm append()

Việc sử dụng hàm append() sẽ có tác dụng thêm phần tử vào cuối của một list trong python.

Cú pháp như sau: mylist.append(obj)

Trong đó:

  • mylist là list mà các bạn cần thêm phần tử.
  • obj là phần tử mà bạn muốn thêm vào mylist.

Ví dụ:

list = ['A', 'B', 'C']

list.append('D')
print(list)
# Kết quả: ['A', 'B', 'C', 'D']

list.append(('E', 'F'))
print(list)
# Kết quả: ['A', 'B', 'C', 'D', ('E', 'F')]

9.2 Kế thừa phần tử giữa các list trong python với hàm extend()

Hàm này extend() được sử dụng nhằm kế thừa lại các phần tử của list2 và thêm vào trong list1.
Cú pháp: list1.extend(list2)
Trong đó:

  • list1 là list mà bạn muốn kế thừa từ một list khác (ở đây là list2).
  • list2 là list được sử dụng để cho list khác kết thừa (ở đây là list1).

Ví dụ:

list = ['A', 'B', 'C']

list.extend('D')
print(list)
# Kết quả: ['A', 'B', 'C', 'D']

list.extend(('E', 'F'))
print(list)
# Kết quả: ['A', 'B', 'C', 'D', 'E', 'F']

Lưu ý: Ở đây mình đã cố tình để ví dụ của phương thức append() và extend() là giống nhau để cho các bạn thấy được sự khác biệt giữa 2 phương thức này.

9.3 Thêm phần tử vào vị trí index của list trong python với hàm insert()

Phương thức có tác dụng thêm phần tử vào vị trí index của list, và các phần tử sau index đó sẽ được đẩy về phía sau.

Cú pháp: mylist.insert(index, val)
Trong đó:

  • mylist là list mà các bạn cần thêm.
  • index là vị trí mà bạn muốn thêm phần tử val vào.
  • val là phần tử mà bạn muốn thêm vào trong list mylist.

Ví dụ:

list = ['A', 'B', 'C']

list.insert(0, 'Z')
print(list)
# Kết quả: ['Z', 'A', 'B', 'C']

list.insert(2, 'D')
print(list)
# Kết quả: ['Z', 'A', 'D', 'B', 'C']

10. Xóa phần tử khỏi list trong Python

Các phương thứ đơn giản và thông dụng nhất để xóa các phần tử khỏi một list trong python như sau:

10.1 Xóa phần tử bằng phương thức remove()

1
2
3
fruits = ["apple", "banana", "guava"];
fruits.remove("banana")
print(fruits);

Kết quả:
[‘apple’, ‘guava’]

10.2 Xóa phần tử bằng phương thức pop()

Phương thức pop() được dùng để xóa phần tử cuối cùng của list trong python:

1
2
3
fruits = ["apple", "banana", "guava"];
fruits.pop();
print(fruits);

Kết quả:
 [‘apple’, ‘banana’]

10.3 Xóa phần tử bằng lệnh del

Lệnh del được sử dụng để xóa phần tử có chỉ mục (index) cụ thể trong list như sau:

1
2
3
fruits = ["apple", "banana", "guava"];
del fruits[0]
print(fruits);

Kết quả:
[‘banana’, ‘guava’]

10.4 Xóa phần tử bằng phương thức clear()

1
2
3
fruits = ["apple", "banana", "guava"];
fruits.clear()
print(fruits);

Kết quả:
[]

11. Tạo bản sao của list bằng copy()

Trong python, chúng ta không thể tạo ra một bản sao của một list chỉ bằng cách nhập list2 = list1, bởi vì: list2 sẽ chỉ là một tham chiếu đến list1 và những thay đổi trong list1 cũng sẽ tự động được thực hiện trong list2.
Vì vậy, để copy list trong python, chúng ta sử dụng phương thức copy().

1
2
3
4
5
6
fruits = ["apple", "banana", "guava"];
listCopy1 = fruits;
listCopy2 = fruits.copy();
fruits.append("kiwi"); # thay doi list ban dau
print("Bi thay doi theo list ban dau: ", listCopy1);
print("Khong bi thay doi theo list ban dau:", listCopy2);

Kết quả:
Bi thay doi theo list ban dau:  ['apple', 'banana', 'guava', 'kiwi']
Khong bi thay doi theo list ban dau:  ['apple', 'banana', 'guava']

12. Chuyển đổi một tuple thành list – list()

Hàm này được sử dụng để chuyển đổi kiểu dữ liệu của một biến sang dạng list trong python.

Cú pháp: list(data)

Trong đó, data là biến chứa tuple bạn cần chuyển đổi.

Ví dụ:

string = "Nguyen Duy Khoi"
print(list(string))
# Ket Qua: ['N', ‘g', 'u', 'y', 'e', 'n', ' ', 'D', 'u', 'y', ' ', 'K', 'h', 'o’, 'i']

tup = ('A', 'B', 'C')
print(list(tup))
# Ket Qua: ['A', 'B', 'C']

13. Giá trị lớn nhất & nhỏ nhất của list trong python

13.1 Giá trị lớn nhất max()

Hàm max() sẽ trả về phần tử có giá trị lớn nhất trong list. Nếu phần tử là chuỗi thì hàm sẽ trả về phần tử có độ dài chuỗi dài nhất, nếu phần tử là số thì hàm sẽ trả về phần tử có giá trị lớn nhất.
Cú pháp: max(list1)
Trong đó, list1 là list mà bạn đang cần kiểm tra giá trị lớn nhất.

Ví dụ:

list = ['A', 'B', 'C']
print(max(list))
#Kết quả: C

list = ['1', '3', '2']
print(max(list))
#Kết quả: 3

13.2 Giá trị nhỏ nhất min()

Hàm min() sẽ trả về phần tử có giá trị nhỏ nhất trong list. Nếu phần tử là chuỗi thì nó sẽ trả về phần tử có độ dài chuỗi ngắn nhất, nếu phần tử là số thì nó sẽ trả về phần tử có giá trị nhỏ nhất.
Cú pháp: min(list1)
Trong đó, list1 là list mà bạn cần kiểm tra giá trị nhỏ nhất.

Ví dụ:

list = ['A', 'B', 'C']
print(min(list))
#Kết quả: A

list = ['1', '3', '2']
print(max(list))
#Kết quả: 1

14. Kiểm tra sự tồn tại của phần tử trong list trong python

Bạn có thể sử dụng từ khóa in để kiểm tra sự tồn tại của một item trong một list trong Python. Ví dụ:

1
2
3
4
5
6
fruits = ["apple", "banana", "guava"];
x = "banana" in fruits;
if (x == True):
    print("\"banana\" co ton tai trong list");
else:
    print("\"banana\" khong ton tai trong list");

15. Sắp xếp và đảo ngược thứ tự các phần tử trong list với sort() & reverse()

15.1 Sắp xếp thứ tự các phần tử trong list với sort()

Để sắp xếp lại các phần tử trong list theo một thứ tự xác định, bạn có thể sử dụng sort() với cú pháp như sau:

mylist.sort(reverse, key)

Trong đó:

  • mylist là list mà các bạn muốn sắp xếp.
  • reverse là một boolean cấu hình kiểu sắp xếp. Nếu reverse = True thì list sẽ được sắp xếp từ lớn đến bé, nếu reverse = False thì list sẽ được sắp xếp theo thứ tự từ bé đến lớn. Mặc định thì reverse = False.
  • key là callback def để xử lý list hoặc là một lamda function (thường được dùng để sắp xếp các list tuple hoặc dictionary).

Ví dụ:

list = ['A', 'C', 'B', 'E', 'D']

list.sort()
print(list)
# Kết quả: ['A', 'B', 'C', 'D', 'E']

list.sort(reverse=True)
print(list)
# Kết quả: ['E', 'D', 'C', 'B', 'A']


def custom_sort(elem):
    return elem[1]
list = [(1, 2), (5, 7), (7, 100), (4, 4)]
list.sort(key=custom_sort)
print(list)
# Kết quả: [(1, 2), (4, 4), (5, 7), (7, 100)]

15.2 Đảo ngược thứ tự các phần tử trong list với reverse()

Các thức reverse() có thể được sử dụng để đảo ngược vị trí của các phần tử trong list.
Cú pháp: mylist.reverse()
Trong đó, mylist là list mà các bạn muốn đảo ngược.

Ví dụ:

list = ['A', 'B', 'C']

list.reverse()
print(list)
# Kết quả: ['C', 'B', 'A']

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *