Python多列表循环仅在其中一个列表发生异常后继续
我有以下问题: 我想循环浏览两个长度不等的列表。我正在使用try-except。是否有一种方法可以在保持未受影响的变量时,在异常后继续其中一个变量的循环Python多列表循环仅在其中一个列表发生异常后继续,python,for-loop,exception,Python,For Loop,Exception,我有以下问题: 我想循环浏览两个长度不等的列表。我正在使用try-except。是否有一种方法可以在保持未受影响的变量时,在异常后继续其中一个变量的循环 try: for url,proxy in ([proxy1, proxy2,..],[url1, url2,..]) call url by proxy except #if proxy does not respond an exception is thrown by selenium: continue loop wi
try:
for url,proxy in ([proxy1, proxy2,..],[url1, url2,..])
call url by proxy
except #if proxy does not respond an exception is thrown by selenium:
continue loop with proxy[1] and url[0]
你可以这样使用:
在do_things中,您可以处理f或g为无的情况
如果要始终使用较短列表中的最后一个元素处理列表,只需将其传递给zip_:
您可以为下一次迭代保存值。例如:
import itertools
lst1 = [2, 4, 6, 8]
lst2 = [2, 0, 2]
for i, j in itertools.zip_longest(lst1, lst2):
try:
print(i / j)
# Save the value
j_ = j
except:
print(i / j_)
输出:
1.0
2.0
3.0
4.0
通过这样做,您试图解决什么问题;Listj-URL列表。我想通过不同的代理调用每个url,如果一个代理不起作用,请使用相同的url转到下一个。用两个列表和预期结果显示示例。@MykolaZotko我没有,我正在考虑如何解决之前的问题。我把它放在伪代码里了,谢谢!我的问题是如何以这种方式处理异常,这样循环将继续f而不是g,这样迭代仍然是并行的。因此,最好的情况是,如果f没有引起异常,并且徽标转到f+1,g+1。但是如果出现异常,由带有f的函数引起,循环将转到f+1,这可以解决将所有do-things代码写入except部分并使用新变量的问题
import itertools
lst1 = [2, 4, 6, 8]
lst2 = [2, 0, 2]
for i, j in itertools.zip_longest(lst1, lst2):
try:
print(i / j)
# Save the value
j_ = j
except:
print(i / j_)
1.0
2.0
3.0
4.0