krotka = (4,2,11,2,4)
krotka_jednoelementowa = (5,)
print(krotka)
print(krotka_jednoelementowa)

print(krotka[1:4])

print(krotka[2])

print("Zliczanie elementów o wartości 2")
print(krotka.count(2))

print("Znalezienie ineksu o wartosci 2")
print(krotka.index(2))

zbior = {4,2,2,1,4,3}
pusty_zbior = set()
print(zbior)

zbior.add(9)
print(zbior)

zbior.remove(4)
print(zbior)

zbior.discard(44)
print("Zbiór po probie usunięcia nieistniejącego elementu")

losowy_element = zbior.pop()
print(f"Usunieto element {losowy_element} ze zbioru {zbior} ")

zbior.clear()
print(f"Wyczyszczny zbiór {zbior} ")

zbior = {1,2,3}
krotka = (4,5,6)
lista = [7,8,8,9]

print("Konwersja zbioru na liste")
print(list(zbior))
print(type(list(zbior)))

print("Zbioru na krotke ")
print(tuple(zbior))
print(type(tuple(zbior)))

print("Krotki na liste")
print(list(krotka))
print(type(list(krotka)))

print("Lista na krotke")
print(tuple(lista))
print(type(tuple(lista)))

print("Listy na zbiór")
print(len(set(lista)))
print(type(set(lista)))

####### Zadania 
1.
lista = [1,2,3]
zbior = {1,3,2}
słownik = {
    "klucz1" : 1,
    "klucz2" : 2,
    "klucz3" : 3 
}

krotka = (1,2,3)

2.
print(len(lista))
print(len(krotka))
print(len(zbior))
print(len(słownik))
print("###############################")
3.
for i in (lista):
    print(i) 

for i in (krotka):
    print(i) 

for i in (zbior):
    print(i)     

for i in (słownik):
    print(i)     

print("#######################")    
4.


for i in (słownik.values()):
    print(i)     

print("############################")

5.
# Lista
lista = [1, 2, 3]
lista.reverse()  # Odwrócenie listy
print("Odwrócona lista:", lista)  # [3, 2, 1]

# Zbiór
zbior = {1, 2, 3}
# Zbiory nie zachowują kolejności, więc odwrócenie nie ma sensu
print("Zbiór (bez odwrócenia, bo nie ma kolejności):", list(zbior))  # Może być np. [3, 1, 2] - losowa kolejność

# Słownik
słownik = {
    "klucz1": 1,
    "klucz2": 2
}
# Odwracanie kolejności par klucz-wartość
odwrocony_słownik = dict(reversed(list(słownik.items())))
print("Odwrócony słownik:", odwrocony_słownik)  # {'klucz2': 2, 'klucz1': 1}

6.
lista.extend(zbior)
print(lista)
7.
lista.append(min(lista))
lista.append(max(lista))

print("##########################")
print(lista)

8.
print(len(lista))
print(f"Długośc listy wynosi {len(lista)}")
9.

print("Lista na krotke")
print(tuple(lista))
krotka_2 = (tuple(lista))
print(len(krotka_2))
10.
print("krotka na zbiór ")
print(set(krotka_2))
zbiór_2 = (set(krotka_2))
print(f"Długośc zbioru wynosi {len(zbiór_2)} wynika to z tego że zbiory nie mają duplikatów")
