double07 发表于 2021-10-27 17:09

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循环把不同地址形成列表?(多参数传递?)

菱角 发表于 2021-10-27 17:14

是希望一次for循环生成40个不用的url地址吗

SDU123 发表于 2021-10-27 17:17

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)

平淡最真 发表于 2021-10-27 17:20

import itertools

菱角 发表于 2021-10-27 17:23

for d in itertools.product(a_list,b_list,c_list):

double07 发表于 2021-10-27 17:26

菱角 发表于 2021-10-27 17:14
是希望一次for循环生成40个不用的url地址吗

是的,二楼方式传统了点,如果条件多了,写起来累

double07 发表于 2021-10-27 17:27

SDU123 发表于 2021-10-27 17:17
a_list =
b_list =
c_list =


感谢,但希望简单点,如果参数多了,这样写不怎么方便

lvweicheng 发表于 2021-10-27 17:27

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))

lucklys 发表于 2021-10-27 17:29

笛卡尔积

magicianly 发表于 2021-10-27 17:29

本帖最后由 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 的组合,可以得到你想要的效果。
页: [1] 2 3
查看完整版本: python 多参数for循环