Python - 想出 5 ^ 5 的'connections graph'?



我真的很感谢你的帮助。我已经尝试了一段时间,但不知道如何以编程的方式创建一个列表,从列表中的一个级别开始——我的朋友——比如

graph["me"] = ["alison", "bob", "candy", "duane", "eric"]

现在,第一级中的每个人——Alison、Bob,通过eric——每个人都有5个独特的朋友(第二级(,这被描述为:

graph["alison"] = ["ana", "ann", "ali" "andy", "arda"]
graph["bob"] = ["bill", "bray", "bran", "brad", "bam"]

等等。

现在,每个人-安娜,安,比尔,布雷等每个人都有5个朋友(第三级(。。。高达第五个唯一级别。一旦我们达到第五关,我想就没有更多的朋友了。

所以实际上,我认为我想要的是5^5个以图["xxx"]开头的唯一列表

实际上,我并不担心名称的生成——我们可以将名称设为abc1、abc2等。我只希望它遵循规则,按照上面的模式深入5 x 5级。

这有道理吗?:(是的,这与广度优先搜索有关。非常感谢。

相关github链接:https://github.com/egonSchiele/grokking_algorithms/blob/master/06_breadth-firstrongearch/python/01_breadth-firstrongearch.py

试试这个:

In [8]: me = ["alison", "bob", "candy", "duane", "eric"]
In [9]: graph = {name: [f"{name}_{i}" 
for i in range(5)] 
for name in me}
In [10]: graph['me'] = me
In [11]: graph
Out[11]: 
{'alison': ['alison_0', 'alison_1', 'alison_2', 'alison_3', 'alison_4'],
'bob': ['bob_0', 'bob_1', 'bob_2', 'bob_3', 'bob_4'],
'candy': ['candy_0', 'candy_1', 'candy_2', 'candy_3', 'candy_4'],
'duane': ['duane_0', 'duane_1', 'duane_2', 'duane_3', 'duane_4'],
'eric': ['eric_0', 'eric_1', 'eric_2', 'eric_3', 'eric_4'],
'me': ['alison', 'bob', 'candy', 'duane', 'eric']}
In [12]: 

最新更新