#!/usr/bin/env python3 # -*- coding: utf-8 -*- my_dict = {'10.10.0.1': 'йцу', '10.10.0.2': 'ыва', '10.10.1.1': 'смр', '10.10.1.2': 'иол'} #new_dict = [{_: [{'.'.join(_key.split('.')[3:]): my_dict[_key]} for _key in my_dict if _key.startswith(_ + '.')]} for _ in set(['.'.join(key.split('.')[:3]) for key in my_dict])] new_dict = dict([(_, dict(('.'.join(_key.split('.')[3:]), my_dict[_key]) for _key in my_dict if _key.startswith(_ + '.'))) for _ in set(['.'.join(key.split('.')[:3]) for key in my_dict])]) print(new_dict)