在python中为给定的测试数据创建多个列表

时间:2015-02-04 02:58:54

标签: list python-2.7

我对python比较新,所以请原谅我这是一个非常基本的问题。这是我第一次提问。 我有一个测试文件,格式如下。

1 2 4
1 3 2
1 4 1
2 1 2
2 2 1
2 3 1
3 2 3
3 7 1
4 1 1
....

我正在尝试逐行读取文件,并且对于第1列(1,2,3 ...)中的每个值,我需要创建下面表单的列表

list_1 = [[2,4], [3,2], [4,1]]
list_2 = [[1,2], [2,1], [3,1]]
list_3 = [[2,3], [7,1]]
list_4 = [[1,1]]
...
list_n

其中列表中的值分别来自第2列和第3列。 真诚地感谢这方面的任何指导。谢谢

1 个答案:

答案 0 :(得分:1)

使用defaultdict。这样,您就不必检查字典中是否已存在密钥。

from collections import defaultdict


def parse(filename):
    result = defaultdict(list)
    with open(filename) as infile:
        for line in infile:
            c1, c2, c3 = map(int, line.split())
            result[c1].append([c2, c3])

    return result


def main():
    result = parse("test_data.txt")
    print(result)


if __name__ == '__main__':
    main()