Lecture 4 Data-Structure For-Student
Lecture 4 Data-Structure For-Student
• Python Comprehensions
• Project review
• Các thư viện thường được sử dụng
2
Mục tiêu
3
Buổi 4: Cấu trúc dữ liệu trong Python
❖ List:
• Là nơi chứa một số đối tượng, theo một thứ tự nhất định
• Thường nằm trong ngoặc vuông []
a = [1, 2, 3, 4, 5]
print(a[1]) # number 2
some_list = []
some_list.append("foo") lenh append: add phan tu vao list
some_list.append(12)
print(len(some_list)) # 2
5
Kiểu dữ liệu phức hợp: List
6
List lồng (nested)
7
Các phương thức sử dụng với list
Tham khảo:
5. Data Structures — Python 3.12.0 documentation
Python - List Methods (w3schools.com)
Phương thức Chức năng Ví dụ
list.append(x) Thêm phần tử x vào cuối danh sách fruits = ['apple', 'banana', 'cherry']
fruits.append("orange")
→ fruits = ['apple', 'banana', 'cherry’,
"orange"]
list.insert(i, x) Thêm phần tử x vào vị trí I của list fruits.insert(1, "orange")
→ ['apple', 'orange', 'banana', 'cherry']
list.index(x[, start[, Trả về chỉ mục trong danh sách có phần tử đầu tiên bằng x x = fruits.index("cherry")
end]]) →2
list.count(x) Trả về số lần x xuất hiện trong danh sách x = fruits.count("cherry")
→1
list.sort(*, key=None, Sắp xếp các vị trí các phần tử trong danh sách x = fruits.count("cherry")
reverse=False) → ['BMW', 'Ford', 'Volvo']
Các phương thức sử dụng với list
x in list Kiểm tra xem phần tử x có tồn tại trong list không 1 in squares → True
2 in squares → False
len(list) Trả lại số phần tử có trong list Len(squares) = 5
Kiểu dữ liệu phức hợp: Dictionary
❖ Kiểu dữ liệu Dictionary: dấu ngoặc nhọn
• Dictionary là gì? Tham chiếu giá trị thông qua khóa; “mảng kết hợp”
• Giống như một mảng được lập index bởi một string
• Cặp khóa: giá trị không có thứ tự
• Giá trị có thể là bất kì kiểu dữ liệu nào; Khóa có thể là là gần hết các
kiểu dữ liệu
{"name":"trang", "age":36, ("hello","world"):1,
42:"yes", "flag": ["red","white","blue"]}
key: flag
d = { "foo" : 1, "bar" : 2 } value: red, white, blue
print(d["bar"]) # 2
some_dict = {}
some_dict["foo"] = "yow!"
print(some_dict.keys()) # ["foo"]
11
Các phương thức sử dụng với Dictionary
Tham khảo:
5. Data Structures — Python 3.12.0 documentation
Python - Dictionary Methods (w3schools.com)
Phương thức Chức năng Ví dụ
dict.keys() Phương thức key() sẽ trả về danh sách tất cả các khóa trong thisdict = { "brand": "Ford", "model":
dictionary "Mustang", "year": 1964}
x = thisdict.keys()
print(x)
→ dict_keys(['brand', 'model', 'year'])
dict.values() Phương thức value() sẽ trả về danh sách tất cả các giá trị trong x = thisdict.values()
dictionary. → dict_values(['Ford', 'Mustang', 1964])
dict.items() Phương thức items() sẽ trả về từng mục trong từ điển, dưới x = thisdict.items()
dạng các tuple trong list. → dict_items([('brand', 'Ford'), ('model',
'Mustang'), ('year', 1964)])
x in dict Để xác định xem một khóa được chỉ định có trong từ điển hay “model” in thisdict
không → true
dict.clear() Phương thức clear() làm trống dictionary thisdict.clear() → {}
12
Các phương thức sử dụng với Dictionary
Phương thức Chức năng Ví dụ
dict.copy() Tạo bản sao cho dictionary mydict = thisdict.copy()
print(mydict)
→ thisdict = { "brand": "Ford", "model":
"Mustang", "year": 1964}
dict.get(key) trả về giá trị của phần tử với khóa được chỉ định. x = car.get("model")
→ “Mustang”
dict.setdefault(key, x) phương thức trả về giá trị của mục với khóa được chỉ định. x = car.setdefault("model", "Bronco")
Nếu khóa không tồn tại, hãy chèn khóa, với giá trị được chỉ → “Mustang”
định x = car.setdefault("color", "White")
print(x)
→ x = “White”
car = {'brand': 'Ford', 'model': 'Mustang',
'year': 1964, 'color': 'White'}
dict.update({key: value}) Chèn một phần tử vào từ điển: car.update({"color": "White"})
→ {'brand': 'Ford', 'model': 'Mustang',
'year': 1964, 'color': 'White'}
dict.popitem() Xóa phần tử cuối cùng khỏi từ điển: car.popitem()
→ {'brand': 'Ford', 'model': 'Mustang'}
13
Kiểu dữ liệu phức hợp: Tuple
❖ Kiểu dữ liệu tuple?
• Kiểu dữ liệu tuple là một bộ sưu tập các thành phần theo thứ
tự, không thể sửa đổi sau khi đã tạo.
• Nói cách khác, đó là một mảng đặc biệt, một mảng chỉ có thể đọc
và không sửa đổi được.
❖ Làm sao có thể tạo một tuple? Dấu ngoặc tròn
• VD:,
>>> t = ()
>>> t = (1, 2, 3)
>>> t = (1, )
>>> t = 1,
>>> a = (1, 2, 3, 4, 5)
>>> print a[1] # 2 14
Các phương thức sử dụng với Tuple
15
Các phương thức sử dụng với Tuple
Tham khảo:
5. Data Structures — Python 3.12.0 documentation
Python Tuples (w3schools.com)
Phương thức Ví dụ
Indexing thistuple = ("apple", "banana", "cherry")
print(thistuple[1])
→ “banana”
Slicing thistuple[2:5]
→ ('cherry', 'orange', 'kiwi')
Nối y = ("orange",)
thistuple += y
print(thistuple)
→ ('apple', 'banana', 'cherry', 'orange')
Kiểm tra tồn tại "apple" in thistuple
→ True
Độ dài len(tuple)
→3
16
Kiểu dữ liệu phức hợp: Set
❖ Kiểu dữ liệu set là gì?
• Là một tập hợp không có thứ tự của các phần tử duy nhất.
❖ Làm sao có thể tạo được 1 set?
• VD:,
>>> s1 = set(['foo', 'bar', 'baz', 'foo', 'qux'])
>>> s1
{'qux', 'foo', 'bar', 'baz'}
>>> s2 = {'foo', 'bar', 'baz', 'foo', 'qux'}
>>> s2
{'qux', 'foo', 'bar', 'baz'}
17
So sánh
List Dict Set Tuple
Ví dụ List = [10, ‘a’, Dict = {“name”: Set = {1, 3, ‘s’} Tuple = (2, 5,
25] ‘data’, member:3} ‘b’)
Trùng lặp Có thể Khóa không thể trùng Không thể Có thể
lặp, giá trị có thể
Có thể thay đổi phần tử Có thể Có thể Có thể Không thể
Trường hợp sử dụng -Dữ liệu không cần truy - Liên kết logic giữa - Cần loại bỏ sự trùng lặp - Dữ liệu không thể thay
cập ngẫu nhiên key:value của dữ liệu đổi
-Đơn giản, có thể lặp lại - Tra cứu nhanh dựa trên
- Dữ liệu được sửa đổi key tùy chỉnh.
thường xuyên -Dữ liệu được sửa đổi
thường xuyên
18
Activity – Bài tập 1 • Thực hành Cấu trúc dữ liệu trong
python (Khởi tạo notebook & thực
Thực hành với cấu hành trên máy tính cá nhân)
trúc dữ liệu
(15 phút)
19
Buổi 4: Cấu trúc dữ liệu trong Python
• Recall list: Tạo một list các số nguyên sử dụng vòng lặp for truyền thống
list1 = []
for item in range(1, 6):
list1.append(item)
• Sử dụng list comprehension:
list2 = [item for item in range(1, 6)]
• Thực hành
• Ánh xạ: list3 = [item * 3 for item in list2]
• Lọc: list4 = [item for item in list2 if item % 2 == 0]
• Cú pháp cơ bản:
[expr for val in collection if condition]
21
Dictionary Comprehension
• Cú pháp cơ bản:
{key:val for val in collection if condition}
22
Set Comprehension
• Cú pháp cơ bản:
{expr for val in collection if condition}
23
• Thực hành với Python Comprehension
Hoạt động – Bài tập 2 (Khởi tạo notebook & thực hành trên
Python máy tính cá nhân)
Comprehensions
(15 phút)
24
Buổi 4: Cấu trúc dữ liệu trong Python
26
Buổi 4: Cấu trúc dữ liệu trong Python
SciPy
(Tích phân, giải phương trình vi
phân, tối ưu hóa) 28
Thư viện trực quan hoá dữ liệu
Matplotlib
(sơ đồ và đồ thị, phổ biến nhất)
2. Thư viện trực
quan hóa dữ
liệu
Seaborn
(sơ đồ: bản đồ nhiệt, chuỗi thời
gian, sơ đồ violin)
29
Các thư viện về thuật toán trong python
Scikit-learn
(Học máy: hồi quy, phân
loại, …)
3. Thư viện
thuật toán
Statsmodels
(Khám phá dữ liệu, ước tính mô hình
thống kê và thực hiện kiểm tra thống
kê)
30
Buổi 3: Python Basics (2)
Tổng kết
Tóm tắt
32
Thank you