1.6 KB of Python console session
Created 1 day, 2 hours ago
— expires in 6 days
Viewed
65 times
https://dpaste.com/2GKVJB4M2
| Python 3.11.4 (main, Jun 7 2023, 10:13:09) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> nested_list = [
... {'name': '/dev/loop0'},
... {'name': '/dev/loop1'},
... {'name': '/dev/loop2'},
... {'name': '/dev/loop4'},
... {'name': '/dev/loop5'},
... {'name': '/dev/loop6'},
... {'name': '/dev/sda', 'children': [{'name': '/dev/sda1', 'children': [{'name': '/dev/mapper/lubuntu--vg-root'}, {'name': '/dev/mapper/lubuntu--vg-swap_1'}]}]},
... {'name': '/dev/sdb', 'children': [{'name': '/dev/sdb1'}, {'name': '/dev/sdb2'}]},
... {'name': '/dev/sdc', 'children': [{'name': '/dev/sdc1'}, {'name': '/dev/sdc9'}]},
... {'name': '/dev/sdd', 'children': [{'name': '/dev/sdd1'}, {'name': '/dev/sdd9'}]},
... {'name': '/dev/sde', 'children': [{'name': '/dev/sde1'}, {'name': '/dev/sde9'}]}
... ]
>>>
>>> def flatten(items):
... for item in items:
... children = item.pop('children', None)
... yield item
... if children:
... yield from flatten(children)
...
>>> list(flatten(nested_list))
[{'name': '/dev/loop0'}, {'name': '/dev/loop1'}, {'name': '/dev/loop2'}, {'name': '/dev/loop4'}, {'name': '/dev/loop5'}, {'name': '/dev/loop6'}, {'name': '/dev/sda'}, {'name': '/dev/sda1'}, {'name': '/dev/mapper/lubuntu--vg-root'}, {'name': '/dev/mapper/lubuntu--vg-swap_1'}, {'name': '/dev/sdb'}, {'name': '/dev/sdb1'}, {'name': '/dev/sdb2'}, {'name': '/dev/sdc'}, {'name': '/dev/sdc1'}, {'name': '/dev/sdc9'}, {'name': '/dev/sdd'}, {'name': '/dev/sdd1'}, {'name': '/dev/sdd9'}, {'name': '/dev/sde'}, {'name': '/dev/sde1'}, {'name': '/dev/sde9'}]
|
Python 3.11.4 (main, Jun 7 2023, 10:13:09) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> nested_list = [
... {'name': '/dev/loop0'},
... {'name': '/dev/loop1'},
... {'name': '/dev/loop2'},
... {'name': '/dev/loop4'},
... {'name': '/dev/loop5'},
... {'name': '/dev/loop6'},
... {'name': '/dev/sda', 'children': [{'name': '/dev/sda1', 'children': [{'name': '/dev/mapper/lubuntu--vg-root'}, {'name': '/dev/mapper/lubuntu--vg-swap_1'}]}]},
... {'name': '/dev/sdb', 'children': [{'name': '/dev/sdb1'}, {'name': '/dev/sdb2'}]},
... {'name': '/dev/sdc', 'children': [{'name': '/dev/sdc1'}, {'name': '/dev/sdc9'}]},
... {'name': '/dev/sdd', 'children': [{'name': '/dev/sdd1'}, {'name': '/dev/sdd9'}]},
... {'name': '/dev/sde', 'children': [{'name': '/dev/sde1'}, {'name': '/dev/sde9'}]}
... ]
>>>
>>> def flatten(items):
... for item in items:
... children = item.pop('children', None)
... yield item
... if children:
... yield from flatten(children)
...
>>> list(flatten(nested_list))
[{'name': '/dev/loop0'}, {'name': '/dev/loop1'}, {'name': '/dev/loop2'}, {'name': '/dev/loop4'}, {'name': '/dev/loop5'}, {'name': '/dev/loop6'}, {'name': '/dev/sda'}, {'name': '/dev/sda1'}, {'name': '/dev/mapper/lubuntu--vg-root'}, {'name': '/dev/mapper/lubuntu--vg-swap_1'}, {'name': '/dev/sdb'}, {'name': '/dev/sdb1'}, {'name': '/dev/sdb2'}, {'name': '/dev/sdc'}, {'name': '/dev/sdc1'}, {'name': '/dev/sdc9'}, {'name': '/dev/sdd'}, {'name': '/dev/sdd1'}, {'name': '/dev/sdd9'}, {'name': '/dev/sde'}, {'name': '/dev/sde1'}, {'name': '/dev/sde9'}]