我试图通过将文本文件中的两行和两行配对来将键值对添加到字典中。为什么这不起作用?
newdata = {}
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
f = open(filename)
for line1, line2 in f.readlines():
newdata[line1] = line2编辑:我得到的错误是
ValueError: too many values to unpack发布于 2013-08-06 23:51:38
您正在读取所有行,并将第一行(一个序列)赋给两个变量。仅当第一行包含2个字符时才有效。改用文件作为迭代器:
newdata = {}
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
with open(filename) as f:
for line1 in f:
newdata[line1.strip()] = next(f, '').strip()在这里,next()从文件中读取下一行。
另一种方法是使用成对食谱:
from itertools import izip_longest
def pairwise(iterable):
return izip_longest(*([iter(iterable)] * 2), '')
newdata = {}
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
with open(filename) as f:
for line1, line2 in pairwise(f):
newdata[line1.strip()] = line2.strip()注意str.strip()调用,以删除任何额外的空格(包括每行末尾的换行符)。
发布于 2013-08-06 23:54:15
newdata = {}
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
with open(filename) as f:
for line1, line2 in zip(*[iter(f)]*2):
newdata[line1] = line2或
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
with open(filename) as f:
newdata = dict(zip(*[iter(f)]*2))https://stackoverflow.com/questions/18084740
复制相似问题