List trong Python

Cấu trúc dữ liệu cơ bản nhất trong Python là dãy (sequence). Mỗi phần tử trong dãy được gán một số, là vị trí hoặc chỉ mục của nó. Chỉ mục đầu tiên là 0, chỉ mục thứ hai là 1, và …

Python có sáu kiểu dãy đã được xây dựng sẵn, và trong loạt bài này chúng ta sẽ tìm hiểu hai kiểu được sử dụng phổ biến nhất là List và Tuple.

List trong Python

List trong Python là cấu trúc dữ liệu mà có khả năng lưu giữ các kiểu dữ liệu khác nhau.

List trong Python là thay đổi (mutable), nghĩa là Python sẽ không tạo một List mới nếu bạn sửa đổi một phần tử trong List.

List là một container mà giữ các đối tượng khác nhau trong một thứ tự đã cho. Các hoạt động khác nhau như chèn hoặc xóa có thể được thực hiện trên List.

Một List có thể được tạo ra bởi lưu trữ một dãy các kiểu giá trị khác nhau được phân biệt bởi các dấu phảy. Dưới đây là cú pháp để tạo List:

<ten_list>=[giatri1, giatri2, ..., giatriN];

Ví dụ:

list1 = ['vatly', 'hoahoc', 1997, 2000];

list2 = [1, 2, 3, 4, 5 ];

list3 = ["a", "b", "c", "d"];

Một List trong Python được bao xung quanh bởi các dấu ngoặc vuông [].

Tương tự như chỉ mục của chuỗi, chỉ mục của List bắt đầu từ 0.

Truy cập các giá trị trong List trong Python

Để truy cập các giá trị trong List, bạn sử dụng cú pháp sau:

<ten_list>[index]

để lấy giá trị có sẵn tại chỉ mục đó.

Ví dụ:

list1 = ['vatly', 'hoahoc', 1997, 2000];

list2 = [1, 2, 3, 4, 5, 6, 7 ];

 

print "list1[0]: ", list1[0]

print "list2[1:5]: ", list2[1:5]

Khi code trên được thực thi sẽ cho kết quả:

list1[0]:  vatly

list2[1:5]:  [2, 3, 4, 5]

Ghi chú: Trình tổ chức bộ nhớ nội tại

List không lưu trữ các phần tử một cách trực tiếp tại chỉ mục. Sự thực là một tham chiếu được lưu trữ tại mỗi chỉ mục mà tham chiếu tới đối tượng được lưu trữ ở đâu đó trong bộ nhớ. Điều này là do một số đối tượng có thể lớn hơn một số đối tượng khác và vì thế chúng được lưu trữ tại một vị trí bộ nhớ khác.

Các hoạt động cơ bản trên List trong Python

Bạn có thể thực hiện các hoạt động nối với toán tử + hoặc hoạt động lặp với * như trong các chuỗi. Điểm khác biệt là ở đây nó tạo một List mới, không phải là một chuỗi.

Ví dụ cho nối List:

list1=[10,20]

            list2=[30,40]

            list3=list1+list2

            print list3

Kết quả là:

>>>

            [10, 20, 30, 40]

            >>>

Ghi chú: Toán tử + ngụ ý rằng cả hai toán hạng được truyền cho nó phải là List, nếu không sẽ cho một lỗi như ví dụ sau:

list1=[10,20]

list1+30

print list1

Kết quả là:

Traceback (most recent call last):

                        File "C:/Python27/lis.py", line 2, in <module>

                        list1+30

Ví dụ cho lặp List:

list1=[10,20]

print list1*1

Kết quả là:

>>>

[10, 20]

>>>

Cập nhật List trong Python

Bạn có thể cập nhật một hoặc nhiều phần tử của List bởi gán giá trị cho chỉ mục cụ thể đó. Cú pháp:

<ten_list>[index]=<giatri>

Ví dụ:

list = ['vatly', 'hoahoc', 1997, 2000];

 

print "Gia tri co san tai chi muc thu 2 : "

print list[2]

list[2] = 2001;

print "Gia tri moi tai chi muc thu 2 : "

print list[2]

Khi code trên được thực thi sẽ cho kết quả:

Gia tri co san tai chi muc thu 2 :

1997

Gia tri moi tai chi muc thu 2 :

2001

Phụ thêm phần tử vào cuối một List

Phương thức append() được sử dụng để phụ thêm phần tử vào cuối một List. Cú pháp:

<ten_list>.append(item)

Ví dụ:

list1=[10,"hoang",'z']

print "Cac phan tu cua List la: "

print list1

list1.append(10.45)

print "Cac phan tu cua List sau khi phu them la: "

print list1

Khi code trên được thực thi sẽ cho kết quả:

>>>

Cac phan tu cua List la:

[10, 'hoang', 'z']

Cac phan tu cua List sau khi phu them la:

[10, 'hoang', 'z', 10.45]

>>>

Xóa phần tử trong List

Để xóa một phần tử trong List, bạn có thể sử dụng lệnh del nếu bạn biết chính xác phần tử nào bạn muốn xóa hoặc sử dụng phương thức remove() nếu bạn không biết. Ví dụ:

list1 = ['vatly', 'hoahoc', 1997, 2000];

 

print list1

del list1[2];

print "Cac phan tu cua List sau khi xoa gia tri tai chi muc 2 : "

print list1

Khi code trên được thực thi sẽ cho kết quả:

['vatly', 'hoahoc', 1997, 2000]

Cac phan tu cua List sau khi xoa gia tri tai chi muc 2 :

['vatly', 'hoahoc', 2000]

Bạn cũng có thể sử dụng del để xóa tất cả phần tử từ chi_muc_bat_dau tới chi_muc_ket_thuc như sau:

list1=[10,'hoang',50.8,'a',20,30]

print list1

del list1[0]

print list1

del list1[0:3]

print list1

Khi code trên được thực thi sẽ cho kết quả:

>>>

[10, 'hoang', 50.8, 'a', 20, 30]

['hoang', 50.8, 'a', 20, 30]

[20, 30]

>>>

Các hàm và phương thức đã xây dựng sẵn để xử lý List trong Python

Ngoài các phương thức kể trên, Python còn xây dựng sẵn rất nhiều hàm và phương thức để bạn có thể sử dụng khi làm việc với List. Bảng dưới đây liệt kê các phương thức này. Bạn truy cập link để thấy ví dụ chi tiết.

Danh sách các hàm xử lý List trong Python:

1. cmp(list1, list2)
So sánh các phần tử trong cả hai list

Cú pháp

Cú pháp của cmp() trong Python:

cmp(list1, list2)

Chi tiết về tham số:

  • list1 -- Đây là List thứ nhất để được so sánh.
  • list2 -- Đây là List thứ hai để được so sánh.

Trả về giá trị

Nếu các phần tử là cùng kiểu, thực hiện so sánh và trả về giá trị. Nếu các phần tử là khác kiểu, kiểm tra xem chúng có là số hay không.

  • Nếu là các số thì thực hiện phép so sánh.
  • Nếu một trong các phần tử là số, thì phần tử khác là "lớn hơn" (các số là "nhỏ hơn").
  • Nếu không, các kiểu được xếp theo thứ tự chữ cái.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của cmp() trong Python.

list1, list2 = [123, 'xyz'], [456, 'abc']

 

print cmp(list1, list2)

print cmp(list2, list1)

list3 = list2 + [786];

print cmp(list2, list3)

Chạy chương trình Python trên sẽ cho kết quả −

-1

1

-1

2. len(list)
Trả về độ dài của list

Cú pháp

Cú pháp của len() trong Python:

len(list)

Chi tiết về tham số:

  • list -- Đây là một List mà bạn cần đếm số phần tử.

Trả về giá trị

Phương thức này trả về số phần tử trong list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của len() trong Python.

list1, list2 = [123, 'xyz', 'hoang'], [456, 'abc']

print "Do dai cua List dau tien la : ", len(list1)

print "Do dai cua List thu hai la : ", len(list2)

Chạy chương trình Python trên sẽ cho kết quả −

Do dai cua List dau tien la :  3

Do dai cua List thu hai la :  2

3. max(list)
Trả về phần tử có giá trị lớn nhất trong list

Cú pháp

Cú pháp của max() trong Python:

max(list)

Chi tiết về tham số:

  • list -- Đây là một List.

Trả về giá trị

Trả về phần tử có giá trị lớn nhất trong list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của max() trong Python.

list1, list2 = [123, 'xyz', 'hoang', 'abc'], [456, 700, 200]

 

print "Phan tu co gia tri lon nhat la : ", max(list1)

print "Phan tu co gia tri lon nhat la : ", max(list2)

Chạy chương trình Python trên sẽ cho kết quả −

Phan tu co gia tri lon nhat la :  xyz

Phan tu co gia tri lon nhat la :  700

4. min(list)
Trả về phần tử có giá trị nhỏ nhất trong list

Cú pháp

Cú pháp của min() trong Python:

min(list)

Chi tiết về tham số:

  • list -- Đây là một List.

Trả về giá trị

Trả về phần tử có giá trị nhỏ nhất trong list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của min() trong Python.

list1, list2 = [123, 'xyz', 'hoang', 'abc'], [456, 700, 200]

 

print "Phan tu co gia tri nho nhat : ", min(list1)

print "Phan tu co gia tri nho nhat : ", min(list2)

Chạy chương trình Python trên sẽ cho kết quả −

Phan tu co gia tri nho nhat :  123

Phan tu co gia tri nho nhat :  200

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

Cú pháp

Cú pháp của list() trong Python:

list( seq )

Chi tiết về tham số:

  • seq -- Đây là một Tuple.

Trả về giá trị

Phương thức này trả về List.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của list() trong Python.

!/usr/bin/python

 

aTuple = (123, 'xyz', 'hoang', 'abc');

aList = list(aTuple)

 

print "Cac phan tu cua List la : ", aList

Chạy chương trình Python trên sẽ cho kết quả:

Cac phan tu cua List la :  [123, 'xyz', 'hoang', 'abc']

Danh sách các phương thức xử lý List trong Python:

1. list.append(obj)
Phụ thêm đối tượng obj vào cuối list

Cú pháp

Cú pháp của append() trong Python:

list.append(obj)

Chi tiết về tham số:

  • obj -- Đây là đối tượng để phụ thêm vào cuối list.

Trả về giá trị

Phương thức này không trả về bất kỳ giá trị nào, nhưng nó cập nhật list đã cho.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của append() trong Python.

aList = [123, 'xyz', 'hoang', 'abc'];

aList.append( 2015 );

print "List sau khi cap nhat : ", aList

Chạy chương trình Python trên sẽ cho kết quả −

List sau khi cap nhat :  [123, 'xyz', 'hoang', 'abc', 2015]

2. list.count(obj)
Đếm xem có bao nhiêu lần mà obj xuất hiện trong list

Cú pháp

Cú pháp của count() trong Python:

list.count(obj)

Chi tiết về tham số:

  • obj -- Đối tượng để được đếm trong list.

Trả về giá trị

Phương thức này trả về số lần obj xuất hiện trong list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của count() trong Python.

aList = [123, 'xyz', 'hoang', 'abc', 123];

 

print "So lan 123 xuat hien trong List la : ", aList.count(123)

print "So lan hoang xuat hien trong List la : ", aList.count('hoang')

Chạy chương trình Python trên sẽ cho kết quả −

So lan 123 xuat hien trong List la :  2

So lan hoang xuat hien trong List la :  1

3. list.extend(seq)
Phụ thêm các nội dung của seq vào cuối list

Cú pháp

Cú pháp của extend() trong Python:

list.extend(seq)

Chi tiết về tham số:

  • seq -- Đây là danh sách các phần tử.

Trả về giá trị

Phương thức này không trả về bất cứ giá trị nào nhưng thêm nội dung vào list đã tồn tại.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của extend() trong Python.

aList = [123, 'xyz', 'hoang', 'abc', 123];

bList = [2015, 'nam'];

aList.extend(bList)

 

print "List sau khi duoc phu them la : ", aList

Chạy chương trình Python trên sẽ cho kết quả −

List sau khi duoc phu them la :  [123, 'xyz', 'hoang', 'abc', 123, 2015, 'nam']

4. list.index(obj)
Trả về chỉ mục thấp nhất trong list mà tại đó obj xuất hiện

Cú pháp

Cú pháp của index() trong Python:

list.index(obj)

Chi tiết về tham số:

  • obj -- Đây là đối tượng để được tìm kiếm.

Trả về giá trị

Trả về chỉ mục thấp nhất trong list mà tại đó obj xuất hiện. Nếu không tìm thấy, phương thức sẽ tạo một exception.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của index() trong Python.

aList = [123, 'xyz', 'hoang', 'abc'];

 

print "Chi muc cua xyz la : ", aList.index( 'xyz' )

print "Chi muc cua hoang la : ", aList.index( 'hoang' )

Chạy chương trình Python trên sẽ cho kết quả −

Chi muc cua xyz la :  1

Chi muc cua hoang la :  2

5. list.insert(index, obj)
Chèn đối tượng obj vào trong list tại index đã cho

Cú pháp

Cú pháp của insert() trong Python:

list.insert(index, obj)

Chi tiết về tham số:

  • index -- Đây là chỉ mục nơi đối tượng obj được chèn.
  • obj -- Là đối tượng cần chèn vào List đã cho.

Trả về giá trị

Phương thức này không trả về bất kỳ giá trị nào nhưng nó chèn phần tử đã cho tại chỉ mục đã xác định.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của insert() trong Python.

aList = [123, 'xyz', 'hoang', 'abc']

 

aList.insert( 3, 2015)

 

print "List sau khi da chen bao gom : ", aList

Chạy chương trình Python trên sẽ cho kết quả −

List sau khi da chen bao gom : [123, 'xyz', 'hoang', 2025, 'abc']

6. list.pop(obj=list[-1])
Xóa và trả về phần tử cuối cùng hoặc đối tượng obj có chỉ mục đã cung cấp từ list đã cho

Cú pháp

Cú pháp của pop() trong Python:

list.pop(obj=list[-1])

Chi tiết về tham số:

  • obj -- Đây là tham số tùy ý, là chỉ mục của đối tượng cần xóa từ List.

Trả về giá trị

Trả về đối tượng đã bị xóa từ List.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của pop() trong Python.

aList = [123, 'xyz', 'hoang', 'abc'];

 

print "A List : ", aList.pop()

print "B List : ", aList.pop(2)

Chạy chương trình Python trên sẽ cho kết quả −

A List :  abc

B List :  hoang

7. list.remove(obj)
Xóa đối tượng obj từ list

Cú pháp

Cú pháp của remove() trong Python:

list.remove(obj)

Chi tiết về tham số:

  • obj -- Đây là đối tượng để được xóa từ list.

Trả về giá trị

Phương thức này không trả về giá trị nào nhưng nó xóa đối tượng đã cho từ list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của remove() trong Python.

aList = [123, 'xyz', 'hoang', 'abc', 'xyz'];

 

aList.remove('xyz');

print "List : ", aList

aList.remove('abc');

print "List : ", aList

Chạy chương trình Python trên sẽ cho kết quả −

List :  [123, 'hoang', 'abc', 'xyz']

List :  [123, 'hoang', 'xyz']

8. list.reverse()
Đảo ngược thứ tự các đối tượng trong list

Cú pháp

Cú pháp của reverse() trong Python:

list.reverse()

Chi tiết về tham số:

  • NA

Trả về giá trị

Phương thức này không trả về giá trị nào nhưng nó đảo ngược thứ tự các đối tượng trong list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của reverse() trong Python.

aList = [123, 'xyz', 'hoang', 'abc', 'xyz'];

 

aList.reverse();

print "List : ", aList

Chạy chương trình Python trên sẽ cho kết quả −

List :  ['xyz', 'abc', 'hoang', 'xyz', 123]

9. list.sort([func])
Sắp xếp các đối tượng của list, sử dụng hàm so sánh nếu được cung cấp

Cú pháp

Cú pháp của sort() trong Python:

list.sort([func])

Chi tiết về tham số:

NA

Trả về giá trị

Phương thức này không trả về giá trị nào nhưng nó sắp xếp các phần tử đã cho của list.

Chương trình Python ví dụ

Ví dụ sau minh họa cách sử dụng của sort() trong Python.

aList = [123, 'xyz', 'hoang', 'abc', 'xyz'];

 

aList.sort();

print "List : ", aList

Chạy chương trình Python trên sẽ cho kết quả −

List :  [123, 'abc', 'hoang', 'xyz', 'xyz']