使用python以相同的速率迭代文本文件中的列表和行?
所以我有一个作业,我在另一篇文章中问过,但不是很详细,所以我自己的错没有得到我想要的答案。我需要做的是打开一个结构化文本文件,其中文件的每一行都属于特定的类别。虽然类别和顺序不会改变,但重复的次数可能会改变。我的工作是获取每一行(忽略前2行)并向该行添加一个XML标记。为此,我列出了一个类别的字符串名称列表。我遇到的问题是,我不知道如何以与文件中文本行相同的速率遍历类别列表 例如: 如果我的文本文件是:使用python以相同的速率迭代文本文件中的列表和行?,python,list,file-io,iteration,Python,List,File Io,Iteration,所以我有一个作业,我在另一篇文章中问过,但不是很详细,所以我自己的错没有得到我想要的答案。我需要做的是打开一个结构化文本文件,其中文件的每一行都属于特定的类别。虽然类别和顺序不会改变,但重复的次数可能会改变。我的工作是获取每一行(忽略前2行)并向该行添加一个XML标记。为此,我列出了一个类别的字符串名称列表。我遇到的问题是,我不知道如何以与文件中文本行相同的速率遍历类别列表 例如: 如果我的文本文件是: peas carrots broccoli beans 我的名单是 tagList=["a
peas
carrots
broccoli
beans
我的名单是
tagList=["apples","oranges","bananas","pears"]
然后我不断得到:
<apples>peas</apples>
<oranges>peas</oranges>
<bananas>peas</bananas>
<pears>peas</pears>
<apples>carrots</apples>
<oranges>carrots</oranges>
<bananas>carrots</bananas>
<pears>carrots</pears>
ect....
豌豆
豌豆
豌豆
豌豆
胡萝卜
胡萝卜
胡萝卜
胡萝卜
发射型计算机断层扫描仪。。。。
而不仅仅是
<apples>peas</apples>
<oranges>carrots</oranges>
<bananas>broccoli</bananas>
<pears>beans</pears>
豌豆
胡萝卜
西兰花
豆
我觉得我需要一个嵌套的for循环,所以我有这样的东西
for line in file:
for x in tagList:
outputFile.write("<"+x+">"+line+"</"+x+">\n")
对于文件中的行:
对于标记列表中的x:
outputFile.write(“+line+”\n”)
我完全明白为什么事情会这样发展,我只是觉得不知道如何解决它。我已经找到了其他关于以相同速率遍历2个列表的帖子,但似乎找不到任何关于以相同速率遍历文件和列表中的行的帖子。任何帮助都将不胜感激。谢谢 我不确定这里关于回答家庭作业的政策是什么,但我会解释你的代码在做什么,以防有帮助: 它完全按照你的编码方式工作 您嵌套了for循环(文件中的标记列表) 所以你们基本上要做的是遍历文件,若有4项,在每一点(1-4),你们要再次循环遍历标记列表(有4项) 所以,在第一步,您得到了PEA(来自文件),但在您可以输出它之前,您进入另一个for循环(标记列表),一旦进入该循环,您将输出“PEA” 然后第二个for循环将再经过3次,您将得到总共4个“豌豆”。迭代完成后,您将返回第一个for循环,并移动到下一个元素,这一次将输出胡萝卜
希望这能解释你在这里做什么。Unutbu是正确的-zip是这里最容易使用的
>>> lista = ['a', 'b', 'c', 'd']
>>> listb = [1, 2, 3, 4]
>>> for a, b in zip(lista, listb):
print a, b
a 1
b 2
c 3
d 4
嵌套的for循环看起来是这样的,本质上会将列表相乘-我认为这不是您想要的
>>> for a in lista:
for b in listb:
print a, b
a 1
a 2
a 3
a 4
b 1
b 2
...
另一种方法是使用列表索引,尽管由于Python具有zip函数,您最好使用它
>>> for i in range(4):
print lista[i], listb[i]
a 1
b 2
c 3
d 4
python3.2
列表理解
>>>[[”“+i+”“]表示st中的i表示标签中的v]
作业上的堆栈溢出元:
python 3.2
list comprehension
>>> [["<"+v+">"+i+"</"+v+">"] for i in st for v in tag]