Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

BÀI 9 KIỂU DỮ LIỆU LIST (DANH SÁCH)

I. GIỚI THIỆU:
1. ĐỊNH NGHĨA DANH SÁCH - LIST

List là một cấu trúc dữ liệu trong Python cho phép lưu trữ một tập hợp 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 List (danh
sách), các giá trị có thể có các kiểu dữ liệu khác nhau. Mỗi giá trị trong List được gọi
là phần tử.

Một List gồm các yếu tố sau:

 Được giới hạn bởi cặp ngoặc [ ], tất cả những gì nằm trong đó là những phần tử
của List.
 Các phần tử trong list có thể có kiểu dữ liệu khác nhau.
 Các phần tử trong list được phân tách bởi dấu phẩy.
 Mỗi phần tử trong list có một chỉ mục vị trí, bắt đầu bằng 0

Ví dụ:

[1, 2, 3, 4, 5] # Một List chứa 5 số nguyên

['a', 'b', 'chhgh', 'd'] # Một List chứa 4 chuỗi

[[1, 2], [3, 4]] # Một List chứa 2 List là [1, 2] và [3, 4]

[1, 'one', [2, 'two']] # List chứa số nguyên, chuỗi, và List

2. CÁCH KHỞI TẠO LIST


CÁCH 1: Sử dụng lệnh gán

Sử dụng cặp dấu ngoặc [ ] đặt giá trị bên trong

Cú pháp: [ <giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n> ]

Ví dụ:

1. Khởi tạo list rỗng (một danh sách không có phần tử nào, gọi là danh sách rỗng.)
empty_lisst = []
print (empty_list) # Kết quả: []
2. Khởi tạo một list có giá trị

lst = [1,2,5,"kteam"]
print(lst) # Kết quả:[1, 2, 5, 'kteam']
CÁCH 2: Nhập trực tiếp từ bàn phím

Không hướng dẫn, làm bài tập thực hiện sau khi học các phương thức trong List
3. 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, truy cập một dãy các phần tử trong danh sách với cú
pháp list[index1:index2:Bước nhảy] với index1, index2 là vị trí index bắt đầu
và kết thúc. Nếu index1, index2 hay bước nhảy bị khuyết thì sẽ lấy mặc định
index1 là 0, index2 là chiều dài danh sách, bước nhảy là 1

Ví dụ:

1 list = ['d','a','m','m','i','o']

2 print(list[1]) #Kết quả: a

3 print(list[-1]) #Kết quả: o

4 print(list[1:3]) #Kết quả: ['a', 'm']

5 print(list[4::2]) #Kết quả: ['d', 'a', 'm']

II. MỘT SỐ TOÁN TỬ VÀ PHƯƠNG THỨC VỚI LIST

1. MỘT SỐ TOÁN TỬ

a. 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.

Ví dụ:

list = ['dammio', 'abc', 'john']

print('dammio' in list) #Kết quả: True

print('xyz' in list) #Kết quả: False

Có thể sử dụng toán tử in để duyệt danh sách trong vòng for như sau.

list = ['dammio', 'abc', 'john']

for x in list:

    print(x)

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

Toán tử cộng cho phép cộng hai danh sách với nhau.

Ví dụ:
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.

Ví dụ:

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]

2. CÁC PHƯƠNG THỨC DANH SÁCH

2.1 Nhóm phương thức chèn vào danh sách

a. 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.

Ví dụ:

t = ['a', 'b', 'c']

t.append('d')

print(t)  # Kết quả: ['a', 'b', 'c', 'd']

b. Phương thức extend

Phương thức này sẽ chèn nhiều phần tử ở cuối danh sách

Ví dụ:

t1 = ['a', 'b', 'c']

t2 = ['d', 'e']

t1.extend(t2)

print(t1) #Kết quả: ['a', 'b', 'c', 'd', 'e']

c. Phương thức insert

Thêm phần x vào vị trí i ở trong List.


Cú pháp: <List>.insert (i, x)

Ví dụ:

kteam = [1, 2, 3]
kteam.insert(1, 8) # thêm phần tử 8 vào trong List kteam ở vị trí 1
print(kteam) #Kết quả: [1, 8, 2, 3]
Chú ý:
Nếu vị trí i lại lớn hơn hoặc bằng số phần tử ở trong List thì kết quả sẽ tương tự
như phương thức append.
Ví dụ:

kteam= [1, 2, 3]
kteam.insert(4, 20) # vị trí 4, nhưng trong List chỉ có 3 phần tử
print(kteam) #Kết quả: [1, 2, 3, 20]
kteam.insert(len(kteam), 5) # vị trí thứ 4, bằng số phần tử trong List
print(kteam) #Kết quả: [1, 2, 3, 20, 5]
2.2 Nhóm phương thức xóa

d. 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.

Ví dụ:

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

e. 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 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.

Ví dụ:

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.

Ví dụ:

t = ['a', 'b', 'c', 'd', 'e']

del t[1:3]

print(t) #Kết quả: ['a', 'd', 'e']

f. 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.

Ví dụ:

t = ['a', 'b', 'c']

t.remove('b') #Xóa phần tử có giá trị là b

print(t) #Kết quả: ['a', 'c']

2.2 Nhóm phương thức sắp xếp

g. Phương thức sort

 Sắp xếp danh sách theo thứ tự phần tử tăng dần, đối với kiểu chuỗi thì sắp theo
thứ tự alphabet.

Cú pháp:

<List>.sort()
Hoặc
<List>.sort(reverse=False)
Ví dụ:

t = ['d', 'c', 'e', 'b', 'a']


t.sort()
print(t)  #Kết quả: ['a', 'b', 'c', 'd', 'e']

 Sắp xếp danh sách theo thứ tự phần tử giảm dần:

Cú pháp: <List>.sort(reverse=True)

Ví dụ:

t = ['d', 'c', 'e', 'b', 'a']

t.sort(reverse=True)

print(t)  #Kết quả: ['e', 'd', 'c', 'b', 'a']


Chú ý: các phần tử phải có thể so sánh với nhau. Trường hợp dưới đây không thể so
sánh chuỗi với số được, do đó sẽ xuất hiện lỗi.

lst = ['kteam', 89]


lst.sort()

Traceback (most recent call last):


File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

h. Phương thức reverse

Phương thức này sẽ Đảo ngược các phần tử ở trong List

Ví dụ:
kteam= [1, 2, 3]
kteam.reverse()
print( kteam) #Kết quả: [3, 2, 1]

i. 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.

Ví dụ:

s = 'dammio'

t = list(s)

print(t) #Kết quả: ['d', 'a', 'm', 'm', 'i', 'o']

Hoặc có thể tách các từ trong chuỗi bằng hàm split().

Ví dụ:

s = 'hello dammio website'

t = s.split()

print(t)  #Kết quả: ['hello', 'dammio', 'website']

Nếu muốn tách từ theo ký tự đặc biệt nào đó thì thêm ký tự này trong hàm split().

Ví dụ:

s = 'hello-dammio-website'
t = s.split('-')

print(t)  #Kết quả: ['hello', 'dammio', 'website']

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().

Ví dụ:

t = ['hello', 'dammio', 'website']

delimiter = ' '

print(delimiter.join(t)) # Kết quả: 'hello dammio website'


BÀI TẬP
1. Khởi tạo 1 danh sách với các phần tử bất kì.Yêu cầu:

a) Xuất danh sách


b) Xuất phần tử ở các vị trí 1, 2, -3
c) Xuất danh sách con bất kỳ

2. Khởi tạo danh sách có giá trị như sau [1,5,3,7,1,6,9,7,1,3]

Yêu cầu:

a) Xóa 1 phần tử theo vị trí bất kỳ (đầu danh sách, cuối danh sách, giữa danh
sách) được nhập từ bàn phím.

b) Xóa các phần tử theo vị trí bắt đầu và kết thúc được nhập từ bàn phím.

c) Thêm mới 1 phần tử theo vị trí bất kỳ (đầu danh sách, cuối danh sách, giữa
danh sách) được nhập từ bàn phím

d) Thêm các phần tử theo vị trí bắt đầu và vị trí kết thúc chèn được nhập từ bàn
phím.

e) Xóa giá trị 3 đầu tiên tồn tại trong danh sách

f) Xóa toàn bộ giá trị 1 tồn tại trong danh sách

3. Nhập vào 1 danh sách từ bàn phím với N phần tử là các số nguyên. Yêu
cầu:

a) Tính tổng các phần tử


b) Tính tổng các số chẵn
c) Đếm số lượng số nguyên tố
d) Sắp xếp theo chiều tăng dần, giảm dần

You might also like