Kiểu 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 = ['Marry', 'Peter']
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ị 'Peter')
Để 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.
1. Kiểm tra sự tồn tại của một phần tử
a. 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
b. 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 = ['a', 'b', 'c']
print 'a' in mylist
(Hiển thị True)
print 'b' not in mylist
(Hiển thị False)
2. Trích xuất mảng
con
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ụ:
numbers = ['a', 'b', 'c', 'd']
print numbers[:2]
(Hiển thị ['a', 'b'])
print numbers[-2:]
(Hiển thị ['c', 'd'])
3. Xóa phần tử của
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. Ví dụ:
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])
4. Nối 2 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])
5. 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]
6. 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.
numbers = [1, 2, 3]
mynumber = numbers.pop()
print mynumber
(Hiển thị 3)
print numbers
(Hiển thị [1, 2])
7. 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')
Khi
chạy sẽ hiển thị kết quả:
Index for xyz :
1
Index for zara :
2
8. Đảo ngược giá trị
của 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])
9. Sắp xếp giá trị
các phần tử
Để 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 , -1 và 1 .
0 comments:
Post a Comment