Scientific
Programming
Language
NGƠN NGỮ LẬP TRÌNH LẬP TRÌNH P TRÌNH
KHOA HỌCC
Nguyễn Mạnh Cường
Scientific
Programming
Language
BÀI 3
CÁC CẤU TRÚC DỮ LIỆU
(DATA STRUCTURES)
2
Scientific
Programming
Language
BÀI 3: DATA STRUCTURES
•
•
•
•
•
Python
Python
Python
Python
Python
list (danh sách)
tuple (bộ)
set (tập hợp)
dictionary (từ điển)
string (chuỗi ký tự)
3
Scientific
Programming
Language
Python list
Bài 3: Data structures
4
Scientific
Programming
Language
Python list
BÀI 3
---------------
• List (danh sách)
List
o Cấu trúc để lưu trữ một dãy các phần tử
Tuple
o Khởi tạo một list:
Set
a = [1, 3, 2, 4, 5]
b = [“Hoa”, “Hải”, “Hồng”, “Hoàng”]
k = [2*i for i in range (1, 10)]
Dictionary
String
[2, 4, 6, 8, 10, 12, 14, 16, 18]
o Các phần tử trong một list không nhất thiết phải cùng kiểu:
c = [1, 2, “Hoa”, 3.1, “Hồng”, 5]
d=[]
o Các phần tử lại có thể là một list (nested list):
e = [ 1, 2, [4, 5, 6], 9, 8]
Bài 3: Data structures
5
Scientific
Programming
Language
Python list
BÀI 3
---------------
• List index (chỉ số)
List
o Chỉ số được tính từ 0
Tuple
o Chỉ số của nested list:
c = [1, 2, [3, 4, 5], 6]
Set
c[1] = 2,
o Chỉ số âm:
Dictionary
c[2] = [3, 4, 5],
c[2][1] = 4
c = [1, 2, [3, 4, 5], 6]
c[-1] = 6,
c[-2] = [3, 4, 5],
c[-2][2] = c[-2][-1] = 5
String
Bài 3: Data structures
6
Scientific
Programming
Language
Python list
BÀI 3
---------------
BÀI TẬP 3.1
List
o Khởi tạo một list a với bộ 5 giá trị bất kỳ, in ra màn hình
Tuple
Set
Dictionary
o Khởi tạo và in một list b với 100 số nguyên chẵn đầu tiên [2, 4, 6, ...]
o Sử dụng list để nhập vào từ bàn phím một mảng c gồm n phần
tử nguyên. Tính tổng các phần tử trong mảng.
o Sử dụng list để nhập vào từ bàn phím một mảng hai chiều
d(n x m) các số thực. Hiển thị mảng d lên màn hình.
String
Bài 3: Data structures
7
Scientific
Programming
Language
Python list
BÀI 3
---------------
• List slicing (chia cắt list)
List
o List slicing: Truy cập vào các phần tử liên tiếp trong list
Tuple
Set
Dictionary
String
c = [1, 2, [3, 4, 5], 6]
c[1 : 3] = c[1], c[2]
c[1 : ] = c[1], c[2], c[3]
c[:]
=c
List slicing: khơng tính
phần tử ở đầu mút bên
phải
Bài 3: Data structures
8
Scientific
Programming
Language
Python list
BÀI 3
---------------
• Thao tác cơ bản trên list
List
BỔ SUNG
Tuple
Set
Dictionary
String
o Thêm 1 phần tử vào cuối:
append()
o Chèn 1 phần tử :
insert()
o Thêm nhiều phần tử:
extend()
XĨA
o Xóa phần tử:
del
o Xóa phần tử theo giá trị:
remove()
o Xóa phần tử theo chỉ số:
pop ()
Bài 3: Data structures
9
Scientific
Programming
Language
Python list
BÀI 3
---------------
• Thao tác cơ bản trên list
List
TÌM KIẾM
Tuple
o Lấy chỉ số đầu tiên theo giá trị:
index()
Set
o Đếm số lần xuất hiện của 1 giá trị:
count()
SẮP XẾP
Dictionary
String
o Sắp xếp list:
sort()
o Đảo ngược list:
reverse()
o Sao chép một list:
o Ghép hai lits:
o Nhân bản list:
copy()
+
*
Bài 3: Data structures
10
Scientific
Programming
Language
Python list
BÀI 3
---------------
BÀI TẬP 3.2
List
o Nhập vào từ bàn phím một mảng a gồm n số nguyên. Sắp a tăng
dần và in ra màn hình
Tuple
Set
Dictionary
String
o Tìm max, tìm min, tìm vị trí của phần tử chẵn đầu tiên trong a,
cho biết trong mảng có chứa số 3 hay khơng.
o Chèn một phần tử vào vị trí k; xóa tồn bộ các phần tử chẵn
trong mảng.
o Nhập thêm mảng b gồm m phần tử nguyên từ bàn phím. Nhân
bản b lên gấp đơi, đảo ngược b sau đó ghép a với b để thu
được mảng c.
Bài 3: Data structures
11
Scientific
Programming
Language
Python tuple
Bài 3: Data structures
12
Scientific
Programming
Language
Python tuple
BÀI 3
---------------
• Python tuple
List
o Gần tương tự như list
Tuple
o Không giống như list, bộ giá trị của tuple là bất biến.
Set
o Tuy nhiên, nếu bản thân phần tử là một kiểu dữ liệu có thể thay đổi (vd
list), thì các giá trị bên trong phần tử đó có thể được thay đổi.
Dictionary
String
o Khởi tạo tuple:
a = (1, 3, 2, 4, 5)
b = (“Hoa”, [1, 2, 3], “Hồng”, (2, 2))
Bài 3: Data structures
13
Scientific
Programming
Language
BÀI 3
--------------List
Tuple
Set
Dictionary
String
Python tuple
• Python list vs. tuple
o tuple thường dùng để lưu tập giá trị mà các phần tử khác
kiểu; list thường dùng để lưu tập giá trị cùng kiểu.
o Các phần tử của tuple là bất biến; các phần tử của list là có
thể thay đổi.
o Duyệt trên tuple nhanh hơn một chút so với duyệt list.
o Nếu dữ liệu là một tập các phần tử không thay đổi, sử dụng
tuple để lưu trữ.
Bài 3: Data structures
14
Scientific
Programming
Language
BÀI 3
--------------List
Tuple
Set
Dictionary
String
Python tuple
BÀI TẬP 3.3
o Khởi tạo một tuple c gồm 10 số nguyên bất kỳ. In c ra màn hình
và cho biết số phần tử của c.
o Cho biết c có bao nhiêu phần tử chẵn; Nhập vào một giá trị x từ
bàn phím và cho biết c có chứa x hay khơng.
o Khởi tạo một tuple chứa các số thực là tập các trọng lượng của
các bình gas. Cho biết trọng lượng lớn nhất, nhỏ nhất, số bình
gas có trọng lượng 12 (kg) có trong tuple.
Bài 3: Data structures
15
Scientific
Programming
Language
Python set
Bài 3: Data structures
16
Scientific
Programming
Language
BÀI 3
--------------List
Python set
• Python set: tập hợp khơng có chỉ số
Tuple
o set là một tập các mục khơng có chỉ số, mọi phần tử tập hợp là duy
nhất (đơn trị) và bất biến.
Set
o Các phần tử trong một set có thể khác kiểu.
Dictionary
String
o Ta có thể thêm phần tử vào hoặc xóa phần tử từ một set.
o Thường được sử dụng để thực hiện các phép toán tập hợp như:
Hợp, Giao, Trừ, ...
Bài 3: Data structures
17
Scientific
Programming
Language
Python set
BÀI 3
---------------
• Các thao tác cơ bản trên set
List
o Khởi tạo set
Tuple
o Thêm một phần tử:
add()
Set
o Thêm nhiều phần tử:
update()
Dictionary
String
o Xóa một phần tử đang tồn tại:
o Xóa một phần tử nếu tồn tại:
o Xóa tất cả:
remove()
discard()
clear()
o Lấy ra một phần tử ngẫu nhiên:
pop()
Bài 3: Data structures
18
Scientific
Programming
Language
BÀI 3
--------------List
Tuple
Set
Dictionary
Python set
• Các thao tác khơng thể thực hiện trên set
o Khởi tạo một set rỗng:
ví dụ a = { }
o Khởi tạo phần tử trùng nhau:
ví dụ a = {1, 2, 1, 3, 1}
o Khởi tạo 1 phần tử của set là một tupe:
ví dụ a = {1, [2, 3], 4}
o Truy cập vào phần tử thông qua chỉ số:
ví dụ a[1], a[2],...
String
Bài 3: Data structures
19
Scientific
Programming
Language
Python set
BÀI 3
---------------
• Các phép tốn tập hợp trên set
List
o Phép hợp:
Tuple
o Phép giao: & hoặc intersection()
Set
o Phép trừ:
Dictionary
String
| hoặc union()
vd: a = b | c,
a = b.union(c)
vd: a = b & c,
a = b.intersction(c)
- hoặc difference() vd: a = b - c,
a = b.difference(c)
• Các phép kiểm tra trên set
o Kiểm tra xem hai tập hợp có rời nhau:
isdisjoint()
o Kiểm tra xem một tập có là tập con của tập khác:
issubset()
o Kiểm tra xem một tập có là tập mẹ của tập khác:
issuperset()
Bài 3: Data structures
20