Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';我们不能建两本字典_Python_Dictionary - Fatal编程技术网

Python Can';我们不能建两本字典

Python Can';我们不能建两本字典,python,dictionary,Python,Dictionary,我想从同一个csv文件中构建两个非常相似的词典(一个映射行[0]到行[5],一个映射行[0]到行[6]。出于某种原因,我只能构建一个。我首先运行这两行中的任何一行,词典都存在,并且完全按照我的要求运行。另一行是空的。不知道发生了什么问题 mydict = {row[0]:row[5] for row in csv.reader(g)} mydict1 = {row[0]:row[6] for row in csv.reader(g)} 我正在使用python 3,并尝试更改字典名称和其他一些内

我想从同一个csv文件中构建两个非常相似的词典(一个映射行[0]到行[5],一个映射行[0]到行[6]。出于某种原因,我只能构建一个。我首先运行这两行中的任何一行,词典都存在,并且完全按照我的要求运行。另一行是空的。不知道发生了什么问题

mydict = {row[0]:row[5] for row in csv.reader(g)}
mydict1 = {row[0]:row[6] for row in csv.reader(g)}

我正在使用python 3,并尝试更改字典名称和其他一些内容。

如果不将文件倒回开始,就无法对文件进行两次迭代。这样做也不是很有效;最好不要在此处使用字典理解:

mydict1, mydict2 = {}, {}
for row in csv.reader(g):
    mydict1[row[0]] = row[5]
    mydict2[row[0]] = row[6]
如果您确实坚持,可以使用
file.seek(0)
将文件指针放回起始位置;您不需要在此处重新创建读取器:

reader = csv.reader(g)
mydict1 = {row[0]:row[5] for row in reader}
g.seek(0)
mydict2 = {row[0]:row[6] for row in reader}

如果不将文件倒回起始位置,则无法对文件进行两次迭代。这样做也不是很有效;最好不要在此处使用字典理解:

mydict1, mydict2 = {}, {}
for row in csv.reader(g):
    mydict1[row[0]] = row[5]
    mydict2[row[0]] = row[6]
如果您确实坚持,可以使用
file.seek(0)
将文件指针放回起始位置;您不需要在此处重新创建读取器:

reader = csv.reader(g)
mydict1 = {row[0]:row[5] for row in reader}
g.seek(0)
mydict2 = {row[0]:row[6] for row in reader}

如果不将文件倒回起始位置,则无法对文件进行两次迭代。这样做也不是很有效;最好不要在此处使用字典理解:

mydict1, mydict2 = {}, {}
for row in csv.reader(g):
    mydict1[row[0]] = row[5]
    mydict2[row[0]] = row[6]
如果您确实坚持,可以使用
file.seek(0)
将文件指针放回起始位置;您不需要在此处重新创建读取器:

reader = csv.reader(g)
mydict1 = {row[0]:row[5] for row in reader}
g.seek(0)
mydict2 = {row[0]:row[6] for row in reader}

如果不将文件倒回起始位置,则无法对文件进行两次迭代。这样做也不是很有效;最好不要在此处使用字典理解:

mydict1, mydict2 = {}, {}
for row in csv.reader(g):
    mydict1[row[0]] = row[5]
    mydict2[row[0]] = row[6]
如果您确实坚持,可以使用
file.seek(0)
将文件指针放回起始位置;您不需要在此处重新创建读取器:

reader = csv.reader(g)
mydict1 = {row[0]:row[5] for row in reader}
g.seek(0)
mydict2 = {row[0]:row[6] for row in reader}

太长了,读不下去了,太长了,读不下去了。“问题是,一旦你在第一个代码>读者Read/Cube >上重复了一遍,你就已经到达文件的结尾,需要倒带或重新打开它。太长了,读不下去了,“Python中的文件对象是生成器,需要明确地返回到文件的顶部或者重新打开它,看到链接”问题是,一旦你在第一个代码>读者> /代码>上重复,你就到达文件的末尾,并且需要倒带或重新打开它。Python太长了,读不下去了,你需要明确地返回到文件的顶部或者重新打开它,看看链接“问题是一旦你在第一个代码>读者>代码中重复,你就到达文件的结尾,需要倒带或重新打开它。python中的文件对象是生成器,您需要显式返回到文件的顶部或重新打开它,请参见链接“问题是,一旦您迭代了第一个
读取器
,您就到达了文件的末尾,需要倒带或重新打开它。