python - 在 Python 中创建包含列表列表的字典

标签 python list dictionary

我有一个巨大的文件(大约有 20 万个输入)。输入的形式为:

A B C D
B E F
C A B D
D  

我正在读取此文件并将其存储在如下列表中:

text = f.read().split('\n')

这会在看到新行时拆分文件。因此文本如下:

[[A B C D] [B E F] [C A B D] [D]]

我现在必须将这些值存储在字典中,其中键值是每个列表中的第一个元素。即键将是 A、B、C、D。 我发现很难将值作为列表的其余元素输入。即字典应该是这样的:

{A: [B C D]; B: [E F]; C: [A B D]; D: []}

我做了以下事情:

    inlinkDict = {}
    for doc in text:
    adoc= doc.split(' ')
    docid = adoc[0]
    inlinkDict[docid] = inlinkDict.get(docid,0) +  {I do not understand what to put in here}

请帮助我应该如何将值添加到我的字典中。如果列表中除了将成为键值的元素之外没有其他元素,则它应该为 0。就像 0 的例子一样。

最佳答案

字典理解可以简化这项任务:

>>> s = [['A','B','C','D'], ['B','E','F'], ['C','A','B','D'], ['D']]
>>> {t[0]:t[1:] for t in s}
{'A': ['B', 'C', 'D'], 'C': ['A', 'B', 'D'], 'B': ['E', 'F'], 'D': []}

关于python - 在 Python 中创建包含列表列表的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858096/

相关文章:

python - 你能用我的具体例子解释测试驱动开发吗?

.net - EF 5 : Compare two lists of entities and perform insert, 更新,删除需要的地方

list - 添加一个搜索框来过滤 Symfony 中的结果列表?

python - 更改名称在字符串中的python变量的值

python - 返回列表的所有 "positions"

python - Kivy 应用程序具有多个屏幕

python - 如何让 PyDev 自动格式化每行的最大字符数?

python - 没有估计器的 plot_confusion_matrix

python - 为什么 issubclass(dict, collections.Mapping) 在 CPython 中为真?

python - 如何使用 NumPy 数组实现字典?