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