Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #reverse sa strukturom
- def reverse(item, li=[]):
- if not isinstance(item, list):
- return li
- item.reverse()
- li = item
- for i in item:
- reverse(i, li)
- return li
- l = ['a', [['b']], 'c']
- print(reverse(l))
- #sort, ali bez zadrzavanja strukture
- def flatten(xs):
- res = []
- def loop(ys):
- for i in ys:
- if isinstance(i, list):
- loop(i)
- else:
- res.append(i)
- loop(xs)
- return res
- l = ['ivan', ['petar', ['ana']], 'marko']
- print(sorted(flatten(l)))
- #provjera strukture
- def provjeri_sturkturu(lista_1, lista_2):
- if not isinstance(lista_1, list) and not isinstance(lista_2, list):
- return True
- if type(lista_1) != type(lista_2) or len(lista_1) != len(lista_2):
- return False
- for i, j in zip(lista_1, lista_2):
- if isinstance(i, list) and type(i) != type(j):
- return False
- else:
- provjera = provjeri_sturkturu(i, j)
- if provjera is False:
- return False
- return True
- print(provjeri_sturkturu(['a', 2, [[3]]], [1, [[2]], 3]))
- #broji podliste koje imaju 2 integer da je prvi < drugog
- def funk(lista):
- count = 0
- if (isinstance(lista, list) == False):
- return 0
- if (len(lista) == 2):
- if (isinstance(lista[0], int) and isinstance(lista[1], int) and lista[0] < lista[1]):
- count = count + 1
- for i in range(0, len(lista)):
- if (isinstance(lista[i], list)):
- count = count + funk(lista[i])
- return count
- a = [[2, 3], ['a', [4, 8], 'z'], 'z']
- count = 0
- for i in range(0, len(a)):
- count = count + funk(a[i])
- print(count)
- #sve kombinacije
- def slijedi2(niz, osoba_1, osoba_2):
- if (osoba_1, osoba_2) in niz:
- return osoba_1, osoba_2
- for veze_0, veze_1 in niz:
- if osoba_1 == veze_0:
- rjesenje = slijedi2(niz, veze_1, osoba_2)
- if rjesenje:
- print [(veze_0, veze_1), rjesenje]
- else:
- continue
- return False
- podaci4 = [('zoran', 'ana'), ('ivo', 'mara'), ('pero', 'ana'), ('ivo', 'sanja'), ('mara', 'sara'), ('ana', 'marko'),
- ('sara', 'zoran'), ('sara', 'pero'), ('sara', 'marko')]
- print(slijedi2(podaci4, 'sara', 'sanja'))
- #operacije
- brojac = 0
- def funk(znak, lista):
- global brojac
- broj = funk2(lista[0])
- for i in range(1, len(lista)):
- if znak == '+':
- broj = broj + funk2(lista[i])
- elif znak == '-':
- broj = broj - funk2(lista[i])
- elif znak == '*':
- broj = broj * funk2(lista[i])
- elif znak == '/':
- broj = broj / funk2(lista[i])
- if broj < 0:
- print(broj)
- brojac += 1
- return broj
- def funk2(lista, p=[]):
- if isinstance(lista, int):
- return lista
- else:
- for e in lista:
- if isinstance(e, list):
- return funk2(e, p)
- elif e in ('+', '-', '*', '/'):
- return funk(e, lista[1:])
- return p
- podaci = [['*', 906, 468, ['*', ['+', 167, 319]]]]
- k2(podaci)
- print(brojac)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement