[Bài 9] Danh sách (List) trong Python

Trong Python, một danh sách (list) là một chuỗi các giá trị. Trong kiểu dữ liệu chuỗi, các giá trị là các ký tự. Trong khi đó, với kiểu danh sách, các giá trị có thể có bất kỳ kiểu dữ liệu gọi. Mỗi giá trị trong danh sách được gọi là phần tử.

Tạo danh sách

Để tạo danh sách bạn chỉ cần định nghĩa các phần tử giữa hai dấu ngoặc vuông đóng và mở []. Ví dụ danh sách tạo danh sách a và b như sau. Mỗi phần tử trong danh sách có thể có kiểu bất kỳ như string, float, hay int.
a = [1, 2, 3, 4]  # danh sách chứa các số nguyên
print(a)
 
b = ['dammio', 'sammi', 'helmi']  # danh sách chứa các chuỗi
print(b)
 
c = ['hello', 1, 100.7]  # danh sách chứa các phần tử có giá trị bất kỳ
print(c)

Danh sách lồng nhau

Mỗi phần tử còn có thể có kiểu dữ liệu danh sách, khi đó một danh sách có thể có nhiều danh sách con lồng nhau.
# Danh sách sau chứa một danh sách con là [300, 400]
list = ['tech24h', 7.1, 9, [300, 400]] 

Danh sách rỗng

Một danh sách không có thể phần tử, gọi là danh sách rỗng.
list = []
print(list) #Danh sách rỗng không hiển thị kết quả

Truy cập các phần tử trong danh sách

Cú pháp truy cập các phần tử trong danh sách giống hệt như kiểu dữ liệu chuỗi. Vị trí index của các phần tử cũng tính từ 0 và danh sách cũng sử dụng index âm bắt đầu là -1 tính từ cuối danh sách trở về. Tương tự như chuỗi, bạn có thể truy cập một dãy các phần tử trong danh sách với cú pháp list[index1:index2] với index1, index2 là vị trí index bắt đầu và kết thúc. Nếu index1 và index2 bị khuyết thì sẽ lấy mặc định index1 là 0, index2 là chiều dài danh sách.
list = ['t','e','c','h','2','4','h']
print(list[1]) #Kết quả: e
print(list[-1]) #Kết quả: h
print(list[1:3]) #Kết quả: ['e', 'h']
print(list[:3]) #Kết quả: ['t', 'e', 'c']

Toán tử in

Toán tử in trong hoạt động với danh sách dùng để tìm xem phần tử cho trước có nằm trong danh sách hay không.
list = ['tech24h', 'abc', 'john'] 
print('tech24h' in list) #Kết quả: True
print('xyz' in list) #Kết quả: False
Bạn cũng có thể sử dụng toán tử in để duyệt danh sách trong vòng for như sau.
list = ['tech24h', 'abc', 'john'] 
for x in list: 
    print(x)

Toán tử +, toán tử *

Toán tử cộng cho phép cộng hai danh sách với nhau.
a = [1, 2, 3] 
b = [4, 5, 6] 
c = a + b 
print c #Kết quả: [1, 2, 3, 4, 5, 6]
Tương tự toán tử * giúp lặp lại các phần tử trong mảng theo số lần cho trước.
a = [0] * 4
print(a) #Kết quả: [0, 0, 0, 0] 
b = [1, 2, 3] * 3
print(b) #Kết quả: [1, 2, 3, 1, 2, 3, 1, 2, 3] 

Các phương thức danh sách

Phần này sẽ liệt kê một số phương thức áp dụng cho danh sách.

Phương thức append

Phương thức này sẽ chèn 1 phần tử vào cuối danh sách.
t = ['a', 'b', 'c'] 
t.append('d') 
print(t)  # ['a', 'b', 'c', 'd']

Phương thức extend

Phương thức này sẽ chèn nhiều phần tử ở cuối danh sách
t1 = ['a', 'b', 'c'] 
t2 = ['d', 'e'] 
t1.extend(t2) 
print(t1) #Kết quả: ['a', 'b', 'c', 'd', 'e']

Phương thức sort

Phương thức này sẽ sắp xếp danh sách theo thứ tự phần tử từ thấp đến cao, đối với kiểu chuỗi thì sắp theo thứ tự alphabet.
t = ['d', 'c', 'e', 'b', 'a'] 
t.sort() 
print(t)  #Kết quả: ['a', 'b', 'c', 'd', 'e']
Lưu ý phương thức sort() là phương thức void vì vậy sẽ không dùng để gán cho bất kỳ biến nào.

Phương thức pop

Có nhiều cách để xóa phần tử trong danh sách, phương thức đầu tiên là pop(). Phương thức này chỉ có 1 đối số chính là vị trí index cần xóa trong danh sách.
t = ['a', 'b', 'c'] 
x = t.pop(1)  # Xóa phần tử vị trí index = 1
print(t) #Kết quả: ['a', 'c'] 
print(x) #Kết quả: b

Toán tử del

Bạn cũng có thể dùng toán tử del để xóa một phần tử trong danh sách theo vị trí index. Nếu bạn không cần lấy giá trị của phần tử bị xóa thì có thể dùng toán tử này.
t = ['a', 'b', 'c'] 
del t[1] 
print(t) #Kết quả: ['a', 'c']
Bạn cũng có thể xóa phần tử theo vị trí đầu và vị trí cuối.
t = ['a', 'b', 'c', 'd', 'e'] 
del t[1:3] 
print(t) #Kết quả: ['a', 'd', 'e']

Phương thức remove()

Nếu bạn muốn xóa giá trị phần tử thì có thể dùng phương thức remove(). Giá trị trả về của remove() là None.
t = ['a', 'b', 'c'] 
t.remove('b') #Xóa phần tử có giá trị là b
print(t) #Kết quả: ['a', 'c'] 
Danh sách và chuỗi
Bạn có thể kết hợp danh sách và chuỗi để tách các ký tự trong chuỗi thành một danh sách như sau.
s = 'tech24h'
t = list(s) 
print(t) #Kết quả: ['t', 'e', 'c', 'h', '2', '4', 'h'] 
Hoặc có thể tách các từ trong chuỗi bằng hàm split().
s = 'hello website'
t = s.split() 
print(t)  #Kết quả: ['hello', 'website'] 
Nếu bạn muốn tách từ theo ký tự đặc biệt nào đó thì thêm ký tự này trong hàm split().
s = 'hello-dammio-website'
t = s.split('-') 
print(t)  #Kết quả: ['hello', 'dammio', 'website'] 
Bạn cũng có thể hợp nhất thành chuỗi từ các phần tử trong danh sách bằng hàm join().
t = ['hello', 'website'] 
delimiter = ' '
print(delimiter.join(t)) # Kết quả: 'hello website'

Đối tượng và giá trị

Trong Python, điều đặc biệt là 2 biến a và b nếu gán cũng giá trị thì chúng trỏ về cùng địa chỉ.
a = 'banana'
b = 'banana'
print(a is b) #Kết quả: True
Tuy nhiên, nếu bạn tạo 2 danh sách a và b thì chúng ta là đối tượng khác nhau.
a = [1, 2, 3] 
b = [1, 2, 3] 
print(b is a) #Kết quả: False
Nếu bạn muốn a và b cùng trỏ về 1 địa chỉ thì đơn giản chỉ cần gán b = a.
a = [1, 2, 3] 
b = a 
print(b is a) #Kết quả: True 
 
b[0] = 5
print(a) #Kết quả: [5, 2, 3] 
print(b) #Kết quả: [5, 2, 3] 

Kết luận

Bài viết đã giúp bạn hiểu và nắm vững các kiến thức cơ bản về danh sách trong Python thông qua các ví dụ dễ hiểu. Mời bạn theo dõi bài tiếp theo.

0/BÌNH LUẬN

BẠN ĐANG CHẶN QUẢNG CÁO

Vui lòng tắt plugin Adblock trong trình duyệt và phần mềm diệt virus (nếu có) sau đó nhấn vào

Disable Adblock & Reload

để tiếp tục hỗ trợ trang web đang phát triển này