# Autor: Vaclav Hejret # C2184 Uvod do programovani v Pythonu # Kazde zadani ma ruzne mnozstvi reseni, ktere vedou ke stejnemu vysledku # Tato reseni jsou jedny z moznych #4.1a #vypis obraceneho seznamu seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #funkce reverse obrati list seznam.reverse() print(seznam) #4.1b #vypis unikatnich hodnot seznamu seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #inicializace noveho listu unikatni_seznam = [] for i in seznam: #pokud je pocet jednotlivych prvku v listu roven jedne if seznam.count(i) == 1: #prida dany prvek do noveho listu unikatni_seznam.append(i) print(unikatni_seznam) #4.1c #vypis duplicitnich hodnot seznamu seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #iniciace novego listu duplicitni_seznam = [] #pro kazdy prvek v seznamu for i in seznam: #pokud je pocet jednotlivych prvku v seznamu vetsi nez jedna if seznam.count(i) > 1: #prida prvek do noveho seznamu duplicitni_seznam.append(i) print(duplicitni_seznam) #alternativne funkce set() vypise kazdy prvek ze seznamu pouze jednou, pokud byla hodnota jiz #vypsana, podruhe se nevypise odstranuje duplicitu, funkce list() prevede na seznam print(list(set(duplicitni_seznam))) #4.1d seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #vypise prumer hodnot v seznamu pomoci souctu hodnot seznamu a podeleni jeho delkou, tedy poctem #hodnot v seznamu print(sum(seznam)/len(seznam)) #4.1e seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #vypise median seznamu, nejdrive seznam seradi seznam.sort() #vypocte se index prostredniho prvku seznamu stred = len(seznam)//2 #pokud je delka seznamu delitelna dvojkou se zbytkem 1, tedy hodnotou true if len(seznam) % 2: #jako median se bere prostredni hodnota median = seznam[stred] #pokud ne else: #median se vypocte jako prumer prostrednich dvou hodnot median = (seznam[stred - 1] + seznam[stred]) / 2. print(median) #4.1f seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #seradi vytvori dva seznami podle prvy, druhy #iniciace novych seznamu lichy = [] sudy = [] #cyklus ktery bezi od nuly do konce seznamu for i in range(len(seznam)): #pokud je prvek delitelny dvemi bezezbytku pridej ho do seznamu lichych if i % 2 == 0: lichy.append(seznam[i]) #pokud neni delitelny dvemi bezezbytku, pridej ho do seznamu sudych else: sudy.append(seznam[i]) print(lichy,sudy) #4.1g seznam = [1, 4, 3, 13, 8, 3, 6, 3, 6, 0, 11, 9, 4, 4, 2, 3, 1, 1] #rozdeli seznam na dva podle pulky #inicializace dvou seznamu podle pulky prvni = [] druhy = [] #cyklus ktery bezi od nuly do konce seznamu for i in range(len(seznam)): #pokud je i mensi nez pulka delky seznamu, pridej hodnoty do prvniho seznamu if i < (len(seznam)/2): prvni.append(seznam[i]) #pokud je i vetsi nez pulka delky seznamu, pridej hodnoty do druheho seznamu else: druhy.append(seznam[i]) print(prvni,druhy) #4.2a A = [1, 2, 5, 8, 6, 4] B = [4, 3, 7, 9, 1, 6] #secte prvky obou seznamu soucet = [] #cyklus bezi od nuly do konce delky seznamu A for i in range(len(A)): #do noveho seznamu prida soucet prvku s indexem i z obou seznamu soucet.append(A[i]+B[i]) print(soucet) #4.2b #spoji dva seznamy do jednoho za sebou spojene_seznamy = A + B print(spojene_seznamy) #alternativne pomoci funkce extend spojene_seznamy = list(A) spojene_seznamy.extend(B) print(spojene_seznamy) #4.2c #vytvori z obou seznamu slovnik #inicializace slovniku slovnik = {} #cyklus bezi od nuly do konce delky seznamu A for i in range(len(A)): #prida do slovniku hodnotu s indexem i ze seznamu B a klicem bude hodnota s indexem i ze seznamu A slovnik[A[i]] = B[i] print(slovnik) #4.3a #vytvori seznamu s pismeny abecedy abeceda = [] #pomoci funkce chr() prevede cisla na znaky odpovidajici v ASCII tabulce pismenum abecedy #cislo 97 odpovida pismenu a #cislo 122 odpovida pismenu z for i in range(97,123): #prida pismeno do seznamu abeceda.append(chr(i)) print(abeceda) #4.3b #vytvori slovnik, kde klic odpovida pismenu a hodnota cislu v ASCII tabulce slovnik = {} for i in range(97,123): #prida prvek do slovniku slovnik[chr(i)] = i print(slovnik) #4.3 #vytvori slovnik, kde klic odpovida pismenu v ASCII tabulce a hodnotou jsou cisla od 1 do 24 slovnik = {} #potrebujeme pomocnou promennou inicializovanou na 1 cislo = 1 for i in range(97,123): #prida prvek do slovniku slovnik[chr(i)] = cislo #k pomocne promenne v kazde iteraci pricteme jednicku cislo += 1 print(slovnik) #4.3d #vytvori slovnik kde klicem jsou cisla od 0 do 9 a hodnotami jsou cisla od 48 do 57 slovnik = {} #pomocna promenna inicializovana na hodnotu 48 cislo = 48 #cyklus bezi od nuly do deviti for i in range(10): #prida prvek do slovniku slovnik[i] = cislo # k pomocne promenne pricte jednicku cislo += 1 print(slovnik)