fork download
  1. f = lambda l: (lambda l, r: (lambda r, l, f: f((r, l), f))(r, l, lambda x, f: f(({k: v + (0 if k != x[1][0] else 1) for k, v in x[0].items()} if x[1][0] in x[0] else {k: v for k, v in list(x[0].items()) + [(x[1][0], 1)]}, x[1][1:]) if x[1] else (x[0], x[1]), f) if x[1] else x[0]))(l, {})
  2.  
  3. l = ["mango", "cherry", "banana", "cherry", "grape", "mango", "apple", "cherry", "banana"]
  4. print(f(l))
  5. print(f(l) == {'mango': 2, 'cherry': 3, 'banana': 2, 'grape': 1, 'apple': 1})
Success #stdin #stdout 0.02s 9188KB
stdin
Standard input is empty
stdout
{'mango': 2, 'cherry': 3, 'banana': 2, 'grape': 1, 'apple': 1}
True