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ụ:

numbers = [1, 2, 3, 4, 5]
names = ['Hello', 'World']

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ụ:

print numbers[0]
# Hiển thị 1

print numbers[-3]
# Hiển thị 3

print names[1]
# Hiển thị 'World'

Để 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)”:

if index < len(array):
    array[index]
else:
    # handle this

Ví dụ về “Easier to ask forgiveness than permission (EAFP) ":

try:
    array[index]
except IndexError:
    # handle this

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ụ:

mylist = ['Jos', 'Hoàng', 'Tiên']

print 'Jos' in mylist
# Hiển thị True

print 'Jos' not in mylist
# Hiển thị False

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 )end là đến vị trí cuối chuỗi.

Ví dụ:

numbers = ['Làm', 'sao', 'để', 'code']

print numbers[:2]
# Hiển thị ['Làm', 'sao']

print numbers[-2:]
# Hiển thị ['để', 'code']

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.

numbers = [1, 2, 3, 4, 5]
del numbers[0]
print numbers
# Hiển thị [2, 3, 4, 5]

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ụ:

numbers = [1, 2, 3, 4, 5, 6, 7]
del numbers[2:4]
print numbers
# Hiển thị [1, 2, 5, 6, 7]

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ụ:

a = [1, 2]
b = [1, 3]

print a + b
# Hiển thị [1, 2, 1, 3]

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ụ:

numbers = [1, 2, 3]
numbers.append(4)
print numbers
# Hiển thị [1, 2, 3, 4]

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ụ:

numbers = [1, 2, 3]
mynumber = numbers.pop()
print mynumber
# Hiển thị 3

print numbers
# Hiển thị [1, 2]

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ụ:

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

print "Index for xyz : ", aList.index('xyz')
print "Index for zara : ", aList.index('zara')

Kết quả:

Index for xyz : 1
Index for zara : 2

Đả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ụ:

numbers = [1, 2, 3, 4]
numbers.reverse()
print numbers
# Hiển thị [4, 3, 2, 1]

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ụ:

aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.sort()
print "List : ", aList
# Hiển thị List : [123, 'abc', 'xyz', 'xyz', 'zara']

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 , -11.

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ụ:

mytuple = ('x', 'y', 'z')
print mytuple
# Hiển thị ('x', 'y','z')

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

Last updated