python 多参数for循环
本帖最后由 double07 于 2021-10-28 10:09 编辑a_list =
b_list =
c_list=
url ='https://www.xxx.com/?&in=5${}&jobKind={}¤tPage={}
通过url地址格式,把a、b、c三个条件依次填进url地址“{}”对应的空格中,形成不同组合。请问是否只能嵌套几层for循环,才能完成不同url?有什么便捷的方式能通过一次for循环把不同地址形成列表?(多参数传递?)
是希望一次for循环生成40个不用的url地址吗 a_list =
b_list =
c_list =
for i in a_list:
for j in b_list:
for m in c_list:
url = f'https://www.xxx.com/?&key=营销&in=5${i}&jobKind={j}¤tPage={m}'
print(url)
import itertools
for d in itertools.product(a_list,b_list,c_list):
菱角 发表于 2021-10-27 17:14
是希望一次for循环生成40个不用的url地址吗
是的,二楼方式传统了点,如果条件多了,写起来累 SDU123 发表于 2021-10-27 17:17
a_list =
b_list =
c_list =
感谢,但希望简单点,如果参数多了,这样写不怎么方便 import itertools
a_list =
b_list =
c_list =
url = 'https://www.xxx.com/?&in=5${}&jobKind={}¤tPage={}'
for x in itertools.product(a_list, b_list, c_list):
print(url.format(x, x, x)) 笛卡尔积 本帖最后由 magicianly 于 2021-10-27 17:31 编辑
```python
from itertools import cycle
a_list =
b_list =
c_list=
for a, b, c in zip(cycle(a_list), cycle(b_list), cycle(c_list)):
url = f'https://www.xxx.com/?&in=5${a}&jobKind={b}¤tPage={c}'
print(url)
```
> itertools ,Python 中官方用来处理遍历的库;
> cyclye:循环遍历,“ABC” 循环遍历 --> "ABCABCABC..."zip: 同时遍历多个数组(默认情况下遍历到最短的数组停止)。
> 因此用 cycle 和 zip 的组合,可以得到你想要的效果。