Topshiriqlar 2 (set va dict)
Quyidagi mashqlar source/python3/set-dict.ipynb mavzulari asosida tuzilgan.
A. set (to‘plam) bo‘yicha mashqlar
nums = [1, 2, 2, 3, 3, 3, 10, 10, -1]ro‘yxatidansetyasang va:nechta noyob (takrorlanmaydigan) son borligini toping;
noyob sonlarni tartiblangan ro‘yxat ko‘rinishida chiqaring.
text = "assalomu alaykum"satridagi noyob harflar to‘plamini hosil qiling (bo‘sh joyni hisobga olmang).Foydalanuvchi kiritgan 2 ta ro‘yxat berilgan deb oling:
avab.Ikkalasida ham bor elementlar (kesishma)ni toping.
Kamida bittasida bor elementlar (birlashma)ni toping.
Faqat
ada bor,bda yo‘q elementlar (farq)ni toping.
Quyidagi ikki to‘plam berilgan:
A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7}A.union(B)vaA | Bnatijalarini solishtiring.A.intersection(B)vaA & B.A.difference(B)vaA - B.A.symmetric_difference(B)vaA ^ B.
setga element qo‘shish/o‘chirish:bo‘sh
s = set()yarating vaadd()bilan 5 ta element qo‘shing.remove()vadiscard()farqini misol bilan ko‘rsating (yo‘q elementni o‘chirishga uring).pop()nima qaytaradi? Nega u doim bir xil elementni qaytarmasligi mumkin?
setichiga qaysi turlarni joylab bo‘lmasligini ko‘rsating:setichigalistqo‘shishga urining;tupleqo‘shishga urining;natijani izohlang (hashlanuvchan/immutable tushunchasi).
(Amaliy) 2 ta sinf ro‘yxati berilgan:
classA,classB.Ikkala sinfga ham qatnashayotgan o‘quvchilarni toping.
Faqat bitta sinfda bor o‘quvchilarni toping.
Umumiy nechta noyob o‘quvchi bor?
B. dict (lug‘at) bo‘yicha mashqlar
Quyidagi lug‘at berilgan:
student = {'name': 'Ali', 'age': 20, 'group': 'A1'}keys(),values(),items()nima qaytarishini ko‘rsating.student['age']ni 21 ga o‘zgartiring.yangi kalit qo‘shing:
city.
get()va indekslash farqi:mavjud bo‘lmagan kalitga
student['phone']bilan murojaat qiling.student.get('phone')vastudent.get('phone', 'noma’lum')ni solishtiring.
delvapop():
del student['group']bilan kalitni o‘chiring.pop()bilan o‘chiring va qaytgan qiymatni alohida o‘zgaruvchiga saqlang.
(Chastota)
nums = [1, 2, 2, 3, 3, 3]ro‘yxatidagi har bir son necha marta uchraganinidictko‘rinishida toping.(So‘zlar soni)
textsatrini so‘zlarga bo‘ling va har bir so‘z chastotasini toping.Katta-kichik harfni bir xil hisoblash uchun
.lower()qiling.Ixtiyoriy: tinish belgilarini olib tashlang.
(Eng ko‘p uchragan) 12-masaladagi chastota lug‘atidan eng ko‘p uchragan 3 ta so‘zni toping.
(Guruhlash) Quyidagi ro‘yxat berilgan:
people = [
('Ali', 'Toshkent'),
('Vali', 'Samarqand'),
('Guli', 'Toshkent'),
('Soli', 'Buxoro'),
]
Shahar -> odamlar ro‘yxati ko‘rinishida lug‘at tuzing, masalan: {'Toshkent': ['Ali','Guli'], ...}. 15. (Kalit mavjudligini tekshirish) Lug‘atda kalit bor-yo‘qligini in bilan tekshirib, yo‘q bo‘lsa qo‘shing. 16. copy() vs oddiy tayinlash: a) a = {'x': 1}; b = a; c = a.copy() qilib ko‘ring. b) a['x']=2 qilganda b va c qanday o‘zgaradi? Izohlang.
C. Kichik loyiha (ixtiyoriy)
Foydalanuvchi bir nechta mahsulot nomi va narxini kiritadi (masalan, 5 ta mahsulot).
Mahsulot -> narx lug‘atini tuzing.
Eng qimmat va eng arzon mahsulotni toping.
Narxlar o‘rtachasini hisoblang.
Bir nechta talabaning baholari ro‘yxati berilgan (masalan,
{'Ali':[5,4,5], 'Vali':[3,4]}):
Har bir talabaning o‘rtacha bahosini hisoblab yangi lug‘at yarating.
Eng yuqori o‘rtachaga ega talabani toping.