Решение на Пет малки функции от Асен Леков

Обратно към всички решения

Към профила на Асен Леков

Резултати

  • 10 точки от тестове
  • 3 отнети точки
  • 7 точки общо
  • 19 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def extract_type(text, forType):
return "".join(list(s*t for s, t in text if isinstance(s, forType)))
def reversed_dict(otherDict):
return dict(zip(otherDict.values(), otherDict))
def flatten_dict(d):
final = {}
def _flatten_dict(obj, parent_keys=[]):
for k, v in obj.items():
if isinstance(v, dict):
_flatten_dict(v, parent_keys + [k])
else:
key = ".".join(parent_keys + [k])
final[key] = v
_flatten_dict(d)
return list(sorted(final.items(), key=lambda key_value: key_value[0], reverse=True))
def unflatten_dict(d):
result = {}
for k,v in d.items():
if '.' in k:
k1, k2 = k.split('.', 1)
v = {k2: v}
k = k1
result[k] = v
return sorted(result.items(), key=lambda key_value: key_value[0])
def reps(args):
return tuple(e for e in args if args.count(e) > 1)

Лог от изпълнението

...................
----------------------------------------------------------------------
Ran 19 tests in 0.195s

OK

История (1 версия и 1 коментар)

Асен обнови решението на 23.03.2015 16:48 (преди около 9 години)

+def extract_type(text, forType):
+ return "".join(list(s*t for s, t in text if isinstance(s, forType)))
+
+def reversed_dict(otherDict):
+ return dict(zip(otherDict.values(), otherDict))
+
+def flatten_dict(d):
+ final = {}
+ def _flatten_dict(obj, parent_keys=[]):
+ for k, v in obj.items():
+ if isinstance(v, dict):
+ _flatten_dict(v, parent_keys + [k])
+ else:
+ key = ".".join(parent_keys + [k])
+ final[key] = v
+ _flatten_dict(d)
+ return list(sorted(final.items(), key=lambda key_value: key_value[0], reverse=True))
+
+def unflatten_dict(d):
+ result = {}
+ for k,v in d.items():
+ if '.' in k:
+ k1, k2 = k.split('.', 1)
+ v = {k2: v}
+ k = k1
+ result[k] = v
+ return sorted(result.items(), key=lambda key_value: key_value[0])
+
+def reps(args):
+ return tuple(e for e in args if args.count(e) > 1)

Не разбирам реда

return list(sorted(final.items(), key=lambda key_value: key_value[0], reverse=True))

Защо? Написал си правилно функцията и... този ред. Пусна ли поне веднъж примерните тестове?

А сега малко за стил. Прочети pep8. Но мнго по - важното: четири интервала. Не два, не три, не табове.