python中同时循环两个for循环的问题
我想在python中同时执行两个for循环,以便同时读取两个不同文件中具有相同索引的两行 这就是我所尝试的:python中同时循环两个for循环的问题,python,Python,我想在python中同时执行两个for循环,以便同时读取两个不同文件中具有相同索引的两行 这就是我所尝试的: def load_数据集(列路径:str,标签路径:str)->元组[List[str],List[str]]: 单词=[] 标签=[] 将open(列车路径,编码为utf8')作为tp,open(标签路径,编码为utf8')作为lp: 对于tp中的线\u tp,lp中的线\u lp: line_tp=line_tp.strip() line_lp=line_lp.strip() 如果线
def load_数据集(列路径:str,标签路径:str)->元组[List[str],List[str]]:
单词=[]
标签=[]
将open(列车路径,编码为utf8')作为tp,open(标签路径,编码为utf8')作为lp:
对于tp中的线\u tp,lp中的线\u lp:
line_tp=line_tp.strip()
line_lp=line_lp.strip()
如果线路P和线路lp:
字=行
标签=直线
words.append(word)
标签。附加(标签)
返回单词、标签
但是,当我试图调用函数时
(列车列表,标签列表)=加载数据集(列车路径,标签路径)
我得到:
UnboundLocalError:赋值前引用了局部变量'line_lp'
现在,我真的认为问题在于第一个for循环在第二个循环之前执行,有没有办法同时使用相同的索引执行它们?如果要在一个循环中迭代到迭代器,应该使用
您可以使用
zip
从两个文件中获取行:
for line_tp,, line_lp in zip(tp, lp):
....
这里根本没有两个for循环。从错误回溯中可以看出,错误将发生在for语句本身中;因为这根本不是循环两个单独列表的方式 很难说你想做什么,但我怀疑你的意思是:
for line_tp, line_lp in zip(tp, lp):
python使用
zip
来“同时迭代两件(或更多)事情”。可能重复@paritossingh谢谢,我没有看到这个答案,我将尝试一下
for line_tp, line_lp in zip(tp, lp):