List
List trong Python là cấu trúc mảng và các phần tử có index có thứ tự. Không như PHP, key của một mảng có thể vừa là số, vừa là chuỗi (associated array).
Trong Python, muốn tạo một mảng có key là chuỗi thì sẽ sử dụng cấu trúc Dictionary (phần tiếp tiếp). Trong phần này, chúng ta sẽ nói đến List. Một List được khai báo như mảng trong JSON. Sử dụng [..]
để khai báo một mảng.
Ví dụ:
Có thể truy xuất từng phần tử của mảng bằng index
, phần tử đầu tiên có thứ tự là 0
.
Ví dụ:
Để biết được số lượng phần tử của 1 List, có thể sử dụng hàm len(array)
để lấy số lượng phần tử của mảng tham số truyền vào.
Kiểm tra phần tử tồn tại
Kiểm tra theo index
Trong nhiều trường hợp bạn muốn truy xuất một phần tử bất kỳ (dựa vào index) của mảng thì nếu truy xuất đến một phần tử không tồn tại thì ứng dụng sẽ báo lỗi. Do đó, trước khi truy xuất một phần tử, bạn cần kiểm tra xem phần tử này đã tồn tại hay chưa. Hiện tại python không hỗ trợ hàm nào để kiểm tra sự tồn tại của một phần tử trong mảng.
Có 2 cách thường thấy để kiểm tra đó là “Look before you leap” (LBYL) và “Easier to ask forgiveness than permission” (EAFP).
Ví dụ về “Look before you leap (LBYL)
”:
Ví dụ về “Easier to ask forgiveness than permission (EAFP) "
:
Kiểm tra theo giá trị
Để kiểm tra một giá trị có tồn tại / không tồn tại trong mảng hay không thì có thể sử dụng toán tử in
/ not in
.
Ví dụ:
Trích xuất mảng
Tương tự như chuỗi, tó thể tạo các mảng con thông qua toán tử lấy khoản [start:end] (range)
. Mặc định start
là từ vị trí đầu chuỗi ( 0 )
và end
là đến vị trí cuối chuỗi.
Ví dụ:
Xóa phần tử mảng
Có thể xóa một phần tử thông qua toán tử del
. Thứ tự của các phần tử sẽ dịch chuyển tùy vào vị trí của phần tử bị xóa.
Bạn có thể xóa một khoản dựa vào toán tử lấy khoản [start:end]
.
Ví dụ:
Nối mảng
Bạn có thể sử dụng toán tử +
để nối giá trị của 2 mảng và tạo ra một mảng lớn có số lượng phần tử là tổng số lượng phần tử của 2 mảng con.
Ví dụ:
Thêm phần tử vào mảng
Nếu bạn muốn thêm phần tử vào một mảng đã tồn tại, hãy dùng phương thức list.append(newvalue)
để thêm phần tử có giá trị newvalue
vào cuối mảng list
.
Ví dụ:
Lấy phần tử cuối mảng
Nếu muốn lấy phần tử cuối cùng của mảng ra khỏi mảng, có thể sử dụng phương thức list.pop()
, sẽ trả về giá trị của phần tử cuối cùng và mảng bây giờ sẽ không còn phần tử này.
Ví dụ:
Tìm một giá trị trong mảng
Nếu bạn muốn tìm vị trí (index) của một giá trị trong một mảng, có thể dùng phương thức list.index(obj)
. Nếu tìm thấy sẽ trả về index của phần tử đầu tiên tìm thấy. Nếu không tìm thấy sẽ quăng Exception.
Ví dụ:
Kết quả:
Đảo ngược giá trị mảng
Để đảo ngược thứ tự các giá trị của một mảng, sử dụng phương thức list.reverse()
. Phương thức này không trả về kết quả mà thay đổi trực tiếp mảng list
.
Ví dụ:
Sắp xếp phần tử mảng
Để sắp xếp thứ tự của giá trị trong mảng, sử dụng phương thức list.sort([func])
để sắp xếp. Nếu tham số đầu vào là hàm func
không truyền vào thì mặc định là sắp xếp theo giá trị tăng dần. Phương thức này không trả về kết quả mà thay đổi trực tiếp mảng list
.
Ví dụ:
Cách triển khai hàm compare func()
cũng giống như hàm usort
trong PHP. Hàm trả về các giá trị 0
, -1
và 1.
Tuple
Tuple cũng là một cấu trúc mảng, tương tự như cấu trúc List
. Một số điểm khác nhau cơ bản là khai báo Tuple sử dụng cặp dấu ngoặc (...)
và một tuple đã được khai báo rồi thì không thay đổi được giá trị (immutable) và không hỗ trợ các phương thức như append()
, pop()
...
Ví dụ:
Vẫn hỗ trợ các cách để truy xuất phần tử giống List như là truy xuất theo index, range, tìm kiếm...
Follower me
Facebook: https://www.facebook.com/lamsaodecode
Last updated