【发布时间】:2016-01-25 16:30:25
【问题描述】:
我有一个包含以下行的输入文件:
key \t value1 \t value2 .....
我想将此文件读入字典,其中键是行的第一个标记,值是值的列表。
我认为这样的事情会做到这一点,但 python 给我一个错误,名称 l 未定义。我如何编写一个具有两个级别的“for”语句的理解?
f = open("input.txt")
datamap = {tokens[0]:tokens[1:] for tokens in l.split("\t") for l in enumerate(f)}
【问题讨论】:
-
我建议使用 csv 阅读器模块来完成这项工作,而不是自己手动拆分它。 docs.python.org/3/library/csv.html。还要看dictreader函数docs.python.org/3/library/csv.html#csv.DictReader
-
使用与嵌套循环相同的顺序:
{... for l in enumerate(f) for tokens in l.split("\t")}。表达式可以想象成最内层循环的主体。
标签: python list-comprehension dictionary-comprehension