images
18/11/2020 08:19 am

Kiểu List và Tuples trong Python

Kiểu List trong Python là một trong các kiểu dữ liệu cơ bản - kiểu tuần tự (Sequence). Mỗi một thành phần trong sequence được gán với một chỉ số nhất định - số index chỉ vị trí của phần tử.

List


Kiểu List trong Python là một trong các kiểu dữ liệu cơ bản - kiểu tuần tự (Sequence). Mỗi một thành phần trong sequence được gán với một chỉ số nhất định - số index chỉ vị trí của phần tử. Phần tử đầu tiên là 0:


Phần tử

item1

item2 

...

itemN-1

itemN

Vị trí

0

1

...

N-2

N-1

Index ngược

-N




-1


Khởi tạo List


List - hay danh sách trong Python khởi tạo rất đơn giản như sau:


x = [0,1,2,3]  # Danh sách gồm 3 phần tử số


y = [“a", “b",”c"]  # Danh sách gồm 3 xâu.


z = [1,2,”techzone",”python]  # Danh sách gồm các phần tử với kiểu dữ liệu khác nhau.


Truy cập List


Để truy cập các phần tử trong một list, chúng ta căn cứ vào index của phần tử hoặc index ngược. Ví dụ:

>>> x = [5,6,7,8]

>>> x[0]         # Truy cập vào phần tử có index đầu tiên

5

>>> x[-3]         # Truy cập vào phần tử có index đầu tiên

5

Để lấy ra danh sách con từ danh sách đã có, ta cũng căn cứ vào index:

>>>x[2:]    # Lấy ra các phần tử từ vị trí 2 tới cuối:

[7,8]

>>>x[0:2]    # Lấy ra các phần tử từ vị trí 0 tới vị trí trước vị trí 2 (Exclusive)

[5,6]

>>x[:-1] # Lấy ra phần tử từ vị trí đầu tới trước vị trí index ngược -1

[5,6,7]


Thay đổi List


Để cập nhật 1 phần tử trong danh sách, ta có thể gán giá trị của nó thông qua index:

>>> x = [5,6,7,8]

>>> x[0]=10         # Gán giá trị cho index đầu tiên

>>> x       # Danh sách sẽ thay đổi sau khi được update.

[10,6,7,8]


Để thay đổi 1 mảng con các phần tử, ví dụ thay giá trị 6,7 trong mảng trên thành 16,17 ta làm như sau:

>>>x[1:3]=[16,17]

>>x

[10,16,17,8]


Để thêm mới phần tử tron list, ta có thể dùng hàm append() như sau:

>>> x = [5,6,7,8]

>>> x.append(9)  # Thêm phần tử 9 vào cuối danh sách

>>> x       # Danh sách sẽ thay đổi sau khi được update.

[5,6,7,8,9]


Để chèn 1 phần tử vào vị trí index nhất định, ta làm như sau:

>>>x.insert(0,100) # Chèn 100 vào vị trí 0 - đầu tiên của danh sách

>>>x.insert(2,200) # Chèn 200 vào vị trí thứ 2

[100,10,200,17,8]


Để thêm vào 1 danh sách các phần tử, ta dùng hàm extend như sau

>>> x = [5,6,7,8]

>>> x.extend([9,10])   # Thêm 2 phần tử 9, 10 vào cuối danh sách

>>> x       # Danh sách sẽ thay đổi sau khi được update.

[5,6,7,8,9, 10]


hoặc sử dụng toán tử + như sau:

>>>y = x + [11,12]

[5,6,7,8,9, 10,11,12]


Lặp lại các phân tử 2 lần bằng cách nhân 2 số lượng  phần tử:

>>>x*2

[5,6,7,8,9,10,5,6,7,8,9,10]


Để xoá phần tử trong danh sách, ta có thể dùng hàm del như sau:

>>> x = [5,6,7,8]

>>> del x[1]

>>> x       # Danh sách sẽ thay đổi sau khi được xoá.

[5,7,8]


>>> x = [5,6,7,8]

>>> del x[2:] # Xoá danh sách từ phần tử 2 đến cuối

>>> x        

[7,8]

>>> del x[0:]         #  Xoá toàn bộ phần tử trong danh sách, danh sách sẽ trống

>>> del x         #  Xoá toàn bộ danh sách

>>> x

NameError: name 'x' is not defined


Sử dụng List như queue


List có thể dùng như một hàng đợi FIFO trong đó phần tử đầu tiên được lấy ra sẽ đồng thời được xoá bỏ khỏi list. Để sử dụng list như queue, bạn cần dùng 2 hàm là insert() và pop()

>>>x = []

>>>x.insert(0, 10)

>>>x.insert(0,11)

>>>x

[11,10]

>>>x.pop() # Phần tử đầu tiên được insert sẽ được trả về và list sẽ remove phần tử đó đi

10

>>> x

[11]

Hoặc chúng ta có thể dùng append() và del x[0]


Một số hàm cho List


Ngoài ra bạn có thể dùng các hàm của List như:

- append(): Thêm vào phần tử cuối danh sách

- remove(p): xoá 1 phần tử trong danh sách có giá trị bằng p.

- clear(): Xoá hết các phần tử, danh sách sẽ rỗng.

- copy(): Copy một list mới từ danh sách đã có

- reverse(): đảo ngược lại danh sách list

- sort(): sắp xếp danh sách theo thứ tự tăng dần


Tuples


Tuple là kiểu dữ liệu tương tự như list, tuy nhiên bạn không thể thay đổi giá trị của Tuple sau khi được khởi tạo.


Ví dụ:

>>>t1 = () #Tuple rỗng


>>>t1 = (1,5,7,8)

>>>type(t1)

tuple


Truy cập Tuples


Truy cập vào tuple thông qua index:

Ví dụ:

>>>t1[0]

1

>>>t1(1:)

(5,7,8)


Thay đổi Tuples


Không thể thay đổi tuple. Nếu thay đổi giá trị, bạn sẽ nhận được lỗi - exception.

Ví dụ:

>>>t1[0] = 4

TypeError: 'tuple' object does not support item assignment


Tuy vậy có thể xoá tuple:

>>>del t1

>>> t1

NameError: name 't1' is not defined


Mời các bạn đọc thêm bài “Kiểu Boolean và các Toán tử trong Python”.


- Tech Zone -

Thư giãn chút nào!!!

Bài viết liên quan