Home > Net >  Recreating new list with old elements but different orders
Recreating new list with old elements but different orders

Time:03-18

I have a list of dicts like

[ {'elemend_id':1, 'data': 'datachunk1'}, {'elemend_id':2, 'data': 'datachunk2'}, {'elemend_id':3, 'data': 'datachunk3'} ... {'elemend_id':99, 'data': 'datachunk99'}]

So script processin data and stops at some point. I can store info about last element and list could be bigger next time (new elements would be added). If script had been run at least once I need transform it so the element where it stopped (e.g. element_id 5) would be the first element of the list, and those elements that came before will be added to the very end of the list

[ {'elemend_id':5, 'data': 'datachunk5'}, {'elemend_id':6, 'data': 'datachunk6'}, ... {'elemend_id':99, 'data': 'datachunk99'}, {'elemend_id':1, 'data': 'datachunk1'} ... {'elemend_id':4, 'data': 'datachunk4'}]

So everytime I must create new list with SAME data but first element would be the one script stopped at last time and other would be added to the tail. Sounds like not much problem but I still can't get how to do it right and in "pythonic way". Thanks in advance!

CodePudding user response:

Here's an example of how to do what your question asks:

x = [ {'element_id':i, 'data': 'datachunk' str(i)} for i in range(1, 15) ]
print(x)
row = 5
x = x[row - 1:]   x[:row - 1]
print()
print(x)

Output:

[{'element_id': 1, 'data': 'datachunk1'}, {'element_id': 2, 'data': 'datachunk2'}, {'element_id': 3, 'data': 'datachunk3'}, {'element_id': 4, 'data': 'datachunk4'}, {'element_id': 5, 'data': 'datachunk5'}, {'element_id': 6, 'data': 'datachunk6'}, {'element_id': 7, 'data': 'datachunk7'}, {'element_id': 8, 'data': 'datachunk8'}, {'element_id': 9, 'data': 'datachunk9'}, {'element_id': 10, 'data': 'datachunk10'}, {'element_id': 11, 'data': 'datachunk11'}, {'element_id': 12, 'data': 'datachunk12'}, {'element_id': 13, 'data': 'datachunk13'}, {'element_id': 14, 'data': 'datachunk14'}]

[{'element_id': 5, 'data': 'datachunk5'}, {'element_id': 6, 'data': 'datachunk6'}, {'element_id': 7, 'data': 'datachunk7'}, {'element_id': 8, 'data': 'datachunk8'}, {'element_id': 9, 'data': 'datachunk9'}, {'element_id': 10, 'data': 'datachunk10'}, {'element_id': 11, 'data': 'datachunk11'}, {'element_id': 12, 'data': 'datachunk12'}, {'element_id': 13, 'data': 'datachunk13'}, {'element_id': 14, 'data': 'datachunk14'}, {'element_id': 1, 'data': 'datachunk1'}, {'element_id': 2, 'data': 'datachunk2'}, {'element_id': 3, 'data': 'datachunk3'}, {'element_id': 4, 'data': 'datachunk4'}]
  • Related