Хотя вы можете использовать простую индексацию, решение, использующее последнее, не будет масштабироваться для ввода с произвольной глубиной. Вместо этого используйте рекурсию с max
:
flattened = lambda x:[c for h in [[i] if not isinstance(i, list) else flattened(i) for i in x] for c in h]
mydict = {'day2': [[4], [5], [6]], 'day3': [[3], [2], [1]], 'day1': [[9], [2], [3]]}
result = {a:max(flattened(b)) for a, b in mydict.items()}
Выход:
{'day2': 6, 'day3': 3, 'day1': 9}
С глубиной данных n-уровней:
data = {3:[4, 5, 2, [4, [53, [4, 200]]]], 4:[[[56, 3], [4, [[5]]]]]}
new_result = [max(flattened(i)) for i in data.values()]
Выход:
[200, 56]