Python defaultdict(dict)中一个键的多个值

2024-09-28 05:23:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用defaultdict创建一个带可选边权重的有向图。这是我的计划:

import sys
import collections
myGraphLines = sys.stdin.readlines()
myGraphLines = [i.split() for i in myGraphLines]
myDefaultDict = collections.defaultdict(dict)
print(myDefaultDict)
myDefaultDict = {e[0] : {e[1] : e[2] if len(e) == 3 else True} for e in myGraphLines}
print(myDefaultDict)

当我跑步时:

^{pr2}$

但是如果我要创建一个有向图,我需要让'LA'指向'SanFrancisco', 'Ames',和{},但它只指向底特律。在

我觉得我根本没有使用defaultdict,但是我找不到任何地方可以谈论如何按照我想要的方式填充它。谢谢你的帮助。在


Tags: inimportforstdinsyscollections计划指向
1条回答
网友
1楼 · 发布于 2024-09-28 05:23:26

当您使用defaultdict时,您几乎总是必须用显式循环填充它:

myDefaultDict = collections.defaultdict(dict)
for e in myGraphLines:
    myDefaultDict[e[0]][e[1]] = e[2] if len(e) == 3 else True

这是一种最初感觉应该有一些巧妙的方法来使用某种听写理解或其他东西。即使你可以使用一个理解,它通常不是二次时间,或者你根本不需要一个defaultdict的情况。在

相关问题 更多 >

    热门问题