在python中创建字典

时间:2014-04-13 05:38:51

标签: python list dictionary

我有一个人员列表,谁控制谁,但我需要将它们全部组合起来并形成几个句子来计算哪个人控制一个人列表。

员工订单来自txt文件:

控件b
a控件c
a控制d
b控制c
d控制e
d控制f
e控制f

我知道我必须创建一个字典,将txt文件加载到其中但我被卡住了。 关于如何做到这一点的任何想法??

1 个答案:

答案 0 :(得分:1)

  • 逐行阅读文件。
  • 将每行的第一个和最后一个单词作为列表中的元组提取。
  • 处理此列表的元素并创建字典

    afile = open('filename')
    tuple_data = []
    for line in afile:
        a = line.strip().split()
        tuple_data.append((a[0].strip(), a[-1].strip()))
    

tuple_data现在有:

[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('d', 'e'), ('d', 'f'), ('e', 'f')]

现在使用defaultdict构建输出:

>>> from collections import defaultdict
>>> output = defaultdict(list)
>>> for x, y in tuple_data:
...     output[x].append(y)
...
>>> output
defaultdict(<class 'list'>, {'a': ['b', 'c', 'd'], 'b': ['c'], 'e': ['f'], 'd': ['e', 'f']})

现在您可以将输出打印为:

print 'Employee order:'
for k, v in output.items():
    values = ','.join(v)
    print '\t{} controls {}'.format(k, values)