# data[].attributes.body
Cho 1 tuple: tutu = (1,-2,5,-63, ‘python’, [1,24], 5.4, -12.45)

1. Tính tổng các số nguyên có trong tuple đó

2. Viết chương trình thêm n phần tử là số nguyên vào cuối tuple, sau đó in ra ngoài màn hình các số là số lẻ

3. Viết chương trình xác định vị trí của chữ ‘python’

Lời giải :
tutu = (1,-2,5,-63, 'python', [1,24], 5.4, -12.45)
#BÀI 1
S=0
for i in range(len(tutu)):
if type(tutu[i])==int:
S+=tutu[i]
print("Tổng =",S)

#BÀI 2
n=int(input("số phần tử thêm vào:"))
A=[]
for x in range (n):
r=int(input("nhập số nguyên:"))
A.append(r)
tutu2 = tutu + tuple(A)
for y in range (len(tutu2)):
if type(tutu2[y])==int:
if tutu2[y]%2!=0:
print(tutu2[y], " ", end="")
print()

#BÀI 3
pleple = tutu.index('python')
print("Python ở vị trí số",pleple)

# data[].attributes.body
(1) Cách khai báo:
set(tên biến) = {“giá trị thứ nhất, “giá trị thứ 2”, ….., “giá trị thứ n”}

# data[].attributes.body
(1) Cách khai báo :

Cú pháp:

{key1: value1, key2: value2,...,}

# data[].attributes.headline
Phân tích sự khác nhau giữa :                              TUPLE / DICTIONARY / SUB  

# data[].attributes.subject
Phân tích sự khác nhau giữa :                              TUPLE / DICTIONARY / SUB  

# data[].attributes.body
SỰ KHÁC NHAU:

Đều thuộc kiểu dữ liệu tập hợp (collection) trong ngôn ngữ lập trình Python nhưng:

# data[].attributes.body
Trương Tấn Phát
Nguyễn Xuân Phương
Lê Ngọc Thanh Trúc
Nguyễn Hữu Thành

# data[].attributes.body
(2) Truy cập phần tử

Truy cập các item của Dictionary trong Python Dictionary bằng cách sử dụng khóa của nó, bên trong dấu ngoặc
vuông, ví dụ:

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

print(dictCar["model"])

>>>Honda Civic

- Sử dụng hàm get() để truy cập item của Dictionary trong Python như trong ví dụ sau:

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

print(dictCar.get("model"))

>>>Honda Civic

- Thay đổi giá trị của một Dictionary trong Python

Thay đổi giá trị của một item cụ thể bằng khóa của nó:

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

dictCar["year"] = 2020

print(dictCar)

>>>{'brand': 'Honda', 'model': 'Honda Civic', 'year': 2020}

# data[].attributes.body
(2) Cách truy cập vào phần tử:
Không thể truy cập đến một phần tử thông qua vị trí của chúng, vì set không có thứ tự các phần tử.
Dùng For:

setdongvat = {“bò”,”gà”, “heo”}

for i in setdongvat:

print(i)

>>>>> {‘bò’, ‘gà’, ‘heo’,}

Thêm phần tử:

- Hàm add:

setdongvat = {“bò”,”gà”, “heo”}

setdongvat.add(“cá”)

print(setdongvat)

>>>>> {‘bò’, ‘gà’, ‘heo’, ‘cá’}

- Hàm update:

setdongvat = {“bò”,”gà”, “heo”}

setdongvat.update(“ngựa”)

print(setdongvat)

>>>>> {‘bò’, ‘gà’, ‘heo’, ‘ngựa’}

# data[].attributes.body
(1) Cách khai báo:
Tuple thường được sử dụng cho các dữ liệu không cho phép sửa đổi. Chúng được tạo ra bằng cách đặt tất cả các items/elements bên trong dấu ngoặc đơn () và được phân tách bằng dấu phẩy " , ".

1 số cách khai báo:
- TUPLE rỗng:
my_tuple = ()
print(my_tuple)
>>> ()

- TUPLE với nhiều kiểu giá trị:
my_tuple = (1, 2, 3, 3.4, “python”, [1,2,3], (4,5,6))
print(my_tuple)
>>> (1, 2, 3, 3.4, ‘python’, [1,2,3], (4,5,6))
-
TUPLE với 1 giá trị (có dấu phẩy sau giá trị đó):
my_tuple = (“python”, )
print(type(my_tuple))
>>> <class 'tuple'>
my_tuple = “python”,  #Dấu ngoặc đơn có thể bỏ
print(type(my_tuple))
>>> <class 'tuple'>

- TUPLE PACKING (tuple được khai báo không sử dụng ngoặc đơn):
my_tuple = 3, 4.6, "python"
print(my_tuple)
>>> (3, 4.6, "python")
a, b, c = my_tuple
print(a)
>>> 3

# data[].attributes.body
(2) Cách truy cập các phần tử:
- Index (chỉ mục):
my_tuple = ('p','y','t','h','o','n')
print(my_tuple[0])
>>> ‘P’
print(my_tuple[-1])
>>> ‘n’

- Slicing (Cắt lát):
my_tuple = ('p','y','t','h','o','n')
print(my_tuple[1:4])
>>> (‘y’,’t’,’h’,’o’)
print(my_tuple[:1]
>>> (‘p’, ‘y’)

# data[].attributes.body
(3) Duyệt các item của Dictionary trong Python

Khi duyệt một Dictionary bằng vòng lặp for, giá trị trả về là các khóa, khi đó dùng hàm get() để lấy giá trị của khóa.

dictCar = { }

"brand": "Honda",

"model": "Honda Civic",

"year": 1972

for x in dictCar:

print(x, ": ", dictCar.get(x))

>>>brand :  Honda

model :  Honda Civic
year :  1972

- Kiểm tra nếu key tồn tại :

Sử dụng từ khóa in :

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

if "model" in dictCar:

print("Khoa \"model\" co ton tai.")

else:

print("Khoa \"model\" khong ton tai.")

>>>Khoa "model" co ton tai.

- Độ dài của một Dictionary trong Python :

Sử dụng hàm len():

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

print(len(dictCar))

kết quả: 3

Sử dụng hàm values() để trả về các giá trị của Dictionary:

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

for x in dictCar.values():

print(x)

>>>Honda

Honda Civic

1972

- Thêm các item vào Dictionary:

Thêm một item vào Dictionary được thực hiện bằng cách sử dụng khóa mới và gán giá trị cho nó:

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

dictCar["color"] = "yellow"

print(dictCar)

>>>{'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972, 'color': 'yellow'}

- Xóa item của Dictionary bằng hàm pop():

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

dictCar.pop("model")

print(dictCar)

>>>{'brand': 'Honda', 'year': 1972}

- Xóa item của Dictionary bằng từ khóa del:

Lệnh del sẽ xóa item với key được chỉ định:
dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

del dictCar["model"]

print(dictCar)

>>>{'brand': 'Honda', 'year': 1972}

-Xóa item của Dictionary bằng hàm clear()"

Hàm clear() xóa toàn bộ các item của Dictionary.
dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

dictCar.clear()

print(dictCar)

>>>{}

# data[].attributes.body
(3) Toán tử
- Toán tử in
Cú pháp:

value in <Set>
Công dụng: Kết quả trả về là True nếu value xuất hiện trong Set. Ngược lại sẽ là False

Ví dụ:
>>> 1 in {1, 2, 3}

True

>>> 4 in {'a', 'How Kteam', 5}

False

- Toán tử - (trừ)

Cú pháp:

<Set1> - <Set2>
Công dụng: Kết quả trả về là một Set gồm các phần tử chỉ tồn tại trong Set1 mà không tồn tại trong Set2
Ví dụ:
>>> {1, 2, 3} – {2, 3}

{1}

- Toán tử |

Cú pháp:

<Set1> | <Set2>
Công dụng:  Kết quả trả về là một Set chứa tất cả các phần tử tồn tại trong hai Set
Ví dụ:
>>> {1, 2, 3} | {1, 2, 3}

{1, 2, 3,}

- Toán tử ^
Cú pháp:

<Set1> ^ <Set2>
Công dụng:  Kết quả trả về là một Set chứa tất cả các phần tử chỉ tồn tại ở một trong hai Set
Ví dụ:
>>> {1, 2, 3} ^ {4, 5}

{1, 2, 3, 4, 5}

# data[].attributes.body
(3) Toán tử:
- Cộng (thêm vào):
my_tuple = (1,2,3)+(4,5,6)
print(my_tuple)
>>> (1,2,3,4,5,6)
- Nhân (Lặp lại):
my_tuple = (1,2)*3
print(my_tuple)
>>>(1,2,1,2,1,2)

# data[].attributes.body
(4) Toán tử

Copy Dictionary trong Python

dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

dict1 = dictCar # su dung toan tu =

dict2 = dictCar.copy() # su dung ham copy()

dictCar["color"] = "yellow" # thay doi dictCar

print("dict1: ", dict1)

print("dict2: ", dict2)

>>>dict1:  {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972, 'color': 'yellow'}

dict2:  {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972}

Một cách khác để tạo một bản sao là sử dụng hàm tích hợp sẵn dict()
dictCar = {"brand": "Honda","model": "Honda Civic","year": 1972}

dict1 = dictCar  # su dung toan tu =

dict2 = dict(dictCar)  # su dung ham dict()

dictCar["color"] = "yellow"  # thay doi dictCar

print("dict1: ", dict1)

print("dict2: ", dict2)

>>>dict1:  {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972, 'color': 'yellow'}

dict2:  {'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972}

# data[].attributes.body
(4) Hàm/vòng lặp/kiểm tra phần tử:
- Hàm removed:

setdongvat = {“bò”,”gà”, “heo”}

setdongvat.remove(“bò”)

print(setdongvat)

>>>>>{‘gà’, ‘heo’}

- Hàm discard: Nếu xóa phần tử bằng remove thì trong trường hợp phần tử cần xóa không có trong set thì sẽ phát sinh lỗi, hàm remove thì có.
setdongvat = {“bò”,”gà”, “heo”}

setdongvat.discart(“bò”)

print(setdongvat)

>>>>>{‘gà’, ‘heo’} → error

- Hàm Pop: pop sẽ xóa phần tử cuối cùng, nên cẩn thận khi sử dụng pop vì bạn sẽ không biết được phần tử cuối cùng là phần tử nào.
setdongvat = {“bò”,”gà”, “heo”}

x = setdongvat.pop()

print(setdongvat)

>>>>>{‘gà’, ‘heo’}

- Hàm clear: Với hàm clear() sẽ xóa toàn bộ các phần tử trong set.
setdongvat = {“bò”,”gà”, “heo”}

del setdongvat

print(setdongvat) #Vì lúc này set đã bị xóa nên khi gọi hàm print sẽ thông báo lỗi.

# data[].attributes.body
(4) Hàm/vòng lặp/kiểm tra phần tử:
my_tuple = (“python”, “tuyệt”, “vời”)
- Del (chỉ có thể xóa cả tuple chứ không thể xóa từng phần tử):
del my_tuple
print my_tuble
>>> error

- len() (xác định chiều dài của tuple):
print(len(my_tuple))
>>> 3

- <dữ liệu> in <tuple>
print(“python” in my_tuple)
>>> TRUE
print(“python” not in my_tuple)
>>> FALSE

- Vòng lặp for
for i in (“python”, “môn tin”):
print(i, “tuyệt vời”)
>>> python tuyệt vời
>>> môn tin tuyệt vời

# data[].attributes.body
(5) Dictionary lồng nhau trong Python

myfamily = {"child1" : {"name" : "Van","birthday" : 2004},"child2" : {"name" : "Minh","birthday" : 2007},"child3" : {"name" : "Phuc","birthday" : 2011}}

print(my family)

>>>{'child1': {'name': 'Van', 'birthday': 2004}, 'child2': {'name': 'Minh', 'birthday': 2007}, 'child3': {'name': 'Phuc', 'birthday': 2011}}

# data[].attributes.body
(5) Kiểm tra phần tử có trong Set không
Sử dụng in hoặc not in để kiểm tra một phần tử đã chỉ định có trong set hay không.
setdongvat = {“bò”,”gà”, “heo”}
print(“bò” in setdongvat) #nếu có “bò” thì return True
setdongvat = {“bò”,”gà”, “heo”}
print(“châu chấu” in setdongvat) #return False

# data[].attributes.body
(5) Phương thức:
- count(x): Đếm số phần tử x trong tuple
my_tuple = (‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘o’ , ‘n’)
print(my_tuple.count('o'))
>>> 2

- index(x): Trả về giá trị index của phần tử x đầu tiên mà nó gặp trong tuple
my_tuple = (‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘o’ , ‘n’)
print(my_tuple.index('h'))
>>> 3

# data[].attributes.body
(6) Constructor dict() trong Python

Cũng có thể sử dụng constructor dict() để tạo một Dictionary mới:
dictCar = dict(brand="Honda", model="Honda Civic", year=1972)

print(dictCar)

>>>{'brand': 'Honda', 'model': 'Honda Civic', 'year': 1972}