Skip to content

Instantly share code, notes, and snippets.

@darr1s
Created April 4, 2017 23:40
Show Gist options
  • Save darr1s/f1e587daa10f96166c5ba8c914ddfa4a to your computer and use it in GitHub Desktop.
Save darr1s/f1e587daa10f96166c5ba8c914ddfa4a to your computer and use it in GitHub Desktop.
altendky: List Data Collapse v2 created by Bin4ryIO - https://repl.it/GvCO/10
import pprint
d = [{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u6eab',
'method': u'\u9032\u571f',
'name': u'\u6eab\u5fb7\u660e',
'number': 4},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u5c0f',
'method': u'\u9032\u571f',
'name': u'\u5c0f\u660e',
'number': 5},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u738b',
'method': u'\u9032\u571f',
'name': u'\u738b\u6885',
'number': 6},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u738b',
'method': u'\u9032\u571f',
'name': u'\u738b\u9f0e\u54e5',
'number': 6},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u9ec3',
'method': u'\u9032\u571f',
'name': u'\u9ec3\u5609\u73b2',
'number': 7},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u9673',
'method': u'\u9032\u571f',
'name': u'\u9673\u5b89',
'number': 8},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u674e',
'method': u'\u9032\u571f',
'name': u'\u674e\u767d\u6728',
'number': 9},
{'date': u'\u8f9b\u536f\u5e74\u4e03\u6708\u5341\u56db',
'family': u'\u5289',
'method': u'\u9032\u571f',
'name': u'\u5289\u5efa\u6c34',
'number': 10}]
# https://docs.python.org/3/library/itertools.html
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
previous = {'number': object()}
new_d = []
for x in d:
if x['number'] == previous['number']:
previous['name'] += '<br>' + x['name']
previous['date'] += '<br>' + x['date']
else:
new_d.append(x)
previous = x
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(new_d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment