Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.19 KB | None | 0 0
  1. #reverse sa strukturom
  2. def reverse(item, li=[]):
  3.     if not isinstance(item, list):
  4.         return li
  5.  
  6.     item.reverse()
  7.     li = item
  8.  
  9.     for i in item:
  10.         reverse(i, li)
  11.  
  12.     return li
  13.  
  14. l = ['a', [['b']], 'c']
  15. print(reverse(l))
  16.  
  17.  
  18. #sort, ali bez zadrzavanja strukture
  19. def flatten(xs):
  20.     res = []
  21.     def loop(ys):
  22.         for i in ys:
  23.             if isinstance(i, list):
  24.                 loop(i)
  25.             else:
  26.                 res.append(i)
  27.     loop(xs)
  28.     return res
  29.  
  30. l = ['ivan', ['petar', ['ana']], 'marko']
  31. print(sorted(flatten(l)))
  32.  
  33.  
  34.  
  35. #provjera strukture
  36. def provjeri_sturkturu(lista_1, lista_2):
  37.     if not isinstance(lista_1, list) and not isinstance(lista_2, list):
  38.         return True
  39.  
  40.     if type(lista_1) != type(lista_2) or len(lista_1) != len(lista_2):
  41.         return False
  42.  
  43.     for i, j in zip(lista_1, lista_2):
  44.         if isinstance(i, list) and type(i) != type(j):
  45.             return False
  46.         else:
  47.             provjera = provjeri_sturkturu(i, j)
  48.             if provjera is False:
  49.                 return False
  50.  
  51.     return True
  52.  
  53.  
  54. print(provjeri_sturkturu(['a', 2, [[3]]], [1, [[2]], 3]))
  55.  
  56.  
  57.  
  58. #broji podliste koje imaju 2 integer da je prvi < drugog
  59. def funk(lista):
  60.     count = 0
  61.     if (isinstance(lista, list) == False):
  62.         return 0
  63.     if (len(lista) == 2):
  64.         if (isinstance(lista[0], int) and isinstance(lista[1], int) and lista[0] < lista[1]):
  65.             count = count + 1
  66.     for i in range(0, len(lista)):
  67.         if (isinstance(lista[i], list)):
  68.             count = count + funk(lista[i])
  69.     return count
  70.  
  71.  
  72. a = [[2, 3], ['a', [4, 8], 'z'], 'z']
  73. count = 0
  74. for i in range(0, len(a)):
  75.     count = count + funk(a[i])
  76. print(count)
  77.  
  78.  
  79.  
  80. #sve kombinacije
  81. def slijedi2(niz, osoba_1, osoba_2):
  82.     if (osoba_1, osoba_2) in niz:
  83.         return osoba_1, osoba_2
  84.  
  85.     for veze_0, veze_1 in niz:
  86.         if osoba_1 == veze_0:
  87.             rjesenje = slijedi2(niz, veze_1, osoba_2)
  88.             if rjesenje:
  89.                 print [(veze_0, veze_1), rjesenje]
  90.             else:
  91.                 continue
  92.  
  93.     return False
  94.  
  95.  
  96. podaci4 = [('zoran', 'ana'), ('ivo', 'mara'), ('pero', 'ana'), ('ivo', 'sanja'), ('mara', 'sara'), ('ana', 'marko'),
  97.            ('sara', 'zoran'), ('sara', 'pero'), ('sara', 'marko')]
  98.  
  99. print(slijedi2(podaci4, 'sara', 'sanja'))
  100.  
  101.  
  102.  
  103. #operacije
  104. brojac = 0
  105.  
  106.  
  107. def funk(znak, lista):
  108.     global brojac
  109.     broj = funk2(lista[0])
  110.     for i in range(1, len(lista)):
  111.         if znak == '+':
  112.             broj = broj + funk2(lista[i])
  113.         elif znak == '-':
  114.             broj = broj - funk2(lista[i])
  115.         elif znak == '*':
  116.             broj = broj * funk2(lista[i])
  117.         elif znak == '/':
  118.             broj = broj / funk2(lista[i])
  119.     if broj < 0:
  120.         print(broj)
  121.         brojac += 1
  122.     return broj
  123.  
  124.  
  125. def funk2(lista, p=[]):
  126.     if isinstance(lista, int):
  127.         return lista
  128.     else:
  129.         for e in lista:
  130.             if isinstance(e, list):
  131.                 return funk2(e, p)
  132.             elif e in ('+', '-', '*', '/'):
  133.                 return funk(e, lista[1:])
  134.         return p
  135.  
  136.  
  137. podaci = [['*', 906, 468, ['*', ['+', 167, 319]]]]
  138. k2(podaci)
  139. print(brojac)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement