使用旧元素但不同顺序重新创建新列表

Recreating new list with old elements but different orders

我有一个像

这样的字典列表
[ {'elemend_id':1, 'data': 'datachunk1'}, {'elemend_id':2, 'data': 'datachunk2'}, {'elemend_id':3, 'data': 'datachunk3'} ... {'elemend_id':99, 'data': 'datachunk99'}]

所以脚本处理数据并在某个点停止。我可以存储有关最后一个元素的信息,下次列表可能会更大(将添加新元素)。 如果脚本已经 运行 至少一次我需要转换它所以它停止的元素(例如 element_id 5)将是列表的第一个元素,那些元素 之前出现的将被添加到列表的最后

[ {'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'}]

所以每次我都必须使用相同的数据创建新列表,但第一个元素将是上次停止的脚本,其他元素将添加到尾部。 听起来问题不大,但我仍然不知道如何以“pythonic 方式”正确地做到这一点。提前致谢!

以下是如何按照您的问题进行操作的示例:

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)

输出:

[{'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'}]