Aнтония обнови решението на 19.03.2015 04:48 (преди над 9 години)
+def extract_type(args, type):
+ return ''.join([char * count for char,
+ count in args if isinstance(char, type)])
+
+
+def reversed_dict(args):
+ return {args[keys]: keys for keys in args}
+
+
+def flatten_dict(args, separator='.', prefix=''):
+
+ return {prefix + separator + k if prefix else k: v
+ for key, value in args.items()
+ for k, v in flatten_dict(value, separator, key).items()
+ } if isinstance(args, dict) else {prefix: args}
+
+
+def unflatten_dict(args):
+ resultDict = {}
+ for key, value in args.items():
+ d = resultDict
+ if '.' in key:
+ keys = key.split(".")
+ for part in keys[:-1]:
+ if part not in d:
+ d[part] = {}
+ d = d[part]
+ d[keys[-1]] = value
+ else:
+ d[key] = value
+ return resultDict
+
+
+def tuple_without(original_tuple, element_to_remove):
+ return tuple(filter(lambda el: el != element_to_remove, original_tuple))
+
+
+def reps(args):
+ return tuple([x for x in args
+ if len(tuple_without(args, x)) + 1 < len(args)])
- Тествай
extract_type
с различни типове - Не пиши едноредови
if
-ове, които не се събират на един ред - Измисли по-добри имена от
d
иel
- В Python името
args
се използва за подаването на позиционни аргументи, ти знаеш конкретно колко и какви аргументи очакваш