【发布时间】:2021-01-19 17:27:46
【问题描述】:
我的数据看起来像这样
mydict = [
{"id": 0, "item_total": 10000, "send_to_id": None},
{"id": 1, "item_total": 15000, "send_to_id": None},
{"id": 2, "item_total": 30000, "send_to_id": 1},
{"id": 3, "item_total": 20000, "send_to_id": None},
...
]
其中 id 始终是字典在列表中的位置。
item_totals 将被聚合,“send_to_id”键会影响聚合的发生方式。在这里,由于“id”= 2 的 dict 具有“send_to_id”= 1,因此“id”= 1 的 dict 就是我所说的目标层,这两个项目的总数将与正常情况不同地聚合。
不允许的是这样的循环,其中第 1 项指向第 2 项,第 2 项指向第 1 项。
mydict = [
{"id": 0, "item_total": 10000, "send_to_id": None},
{"id": 1, "item_total": 15000, "send_to_id": 2},
{"id": 2, "item_total": 30000, "send_to_id": 1},
{"id": 3, "item_total": 20000, "send_to_id": None}
]
或者这个,它仍然是圆形的,需要三个步骤
mydict = [
{"id": 0, "item_total": 10000, "send_to_id": None},
{"id": 1, "item_total": 15000, "send_to_id": 3},
{"id": 2, "item_total": 30000, "send_to_id": 1},
{"id": 3, "item_total": 20000, "send_to_id": 2}
]
还有一个项目不能指向它自己。
我不知道该怎么做,但我想获取一个像上面这样的字典列表,并找出是否存在循环路径,以便我可以向用户提供适当的错误消息。任何人都可以帮忙吗? 我正在尝试找出如何找到下一个项目的路径,但它在我的大脑中打结。
如果重要的话,列表的最大长度约为 50。
谢谢!
【问题讨论】:
标签: python list dictionary path circular-dependency