Python 使用不同大小的输入迭代构建字符串

Python 使用不同大小的输入迭代构建字符串,python,list,loops,Python,List,Loops,抱歉,如果这是一种令人困惑的提问方式,请在我解释之前快速编写psuedo代码: #for my purpose its to build urls base='www.page.com/' list1=['a','b','c','d'] list2=['1','2','3'] list3=['orange','blue','white','yellow','red','green'] for index in each list: base+=base+/list1[idx]/lis

抱歉,如果这是一种令人困惑的提问方式,请在我解释之前快速编写psuedo代码:

#for my purpose its to build urls

base='www.page.com/'
list1=['a','b','c','d']
list2=['1','2','3']
list3=['orange','blue','white','yellow','red','green']

for index in each list:
    base+=base+/list1[idx]/list2[idx]/list3[idx]

    #desired output: 'www.page.com/a/1/orange', 'www.page.com/b/1/orange' 
    #and so on filling in each of them as I go
所以我要做的是构建URL,在末尾使用不同的结尾模式

我不知道该去哪里。我尝试过嵌套for循环,但它给了我一个无限循环:

清单1中的i的
:
对于清单2中的j:
对于清单3中的k:
基础+=基础+i+j+k
打印(基本)

感谢您的帮助。另外,如果你能解释一下它是如何工作的,那也太棒了。

你没有一个无限循环,但是你一直附加到
base
,你不应该这样做。只要做:

for i in list1:
    for j in list2:
        for k in list3:
            url = base + i + '/' + j + '/' + k
            print(url)
或者,您可以更简洁一点,使用:


您没有无限循环,但您一直在附加到
base
,您不应该这样做。只要做:

for i in list1:
    for j in list2:
        for k in list3:
            url = base + i + '/' + j + '/' + k
            print(url)
或者,您可以更简洁一点,使用:


可能是因为它会溢出底部,或者只是需要很长时间才能完成

解释:因此您的初始字符串长度为:13

您的列表长度为:4、3和6

在第一个回路基础的大小为13+13+1+1+1+1+1+1+1+6=37之后

每次迭代,您的基础大小至少增加2:

因此,在最后,基底的大小大约是:13*2^(4*3*6)=61390764277305387778048

可能有点大;)

修复

base=['www.page.com/']
list1=['a','b','c','d']
list2=['1','2','3']
list3=['orange','blue','white','yellow','red','green']

for i in list1:
        for j in list2:
            for k in list3:
                base.add(base[0]'  '+i+' '+j+' '+k)
                print(base[len(base)])

可能是因为它会溢出底部,或者只是需要很长时间才能完成

解释:因此您的初始字符串长度为:13

您的列表长度为:4、3和6

在第一个回路基础的大小为13+13+1+1+1+1+1+1+1+6=37之后

每次迭代,您的基础大小至少增加2:

因此,在最后,基底的大小大约是:13*2^(4*3*6)=61390764277305387778048

可能有点大;)

修复

base=['www.page.com/']
list1=['a','b','c','d']
list2=['1','2','3']
list3=['orange','blue','white','yellow','red','green']

for i in list1:
        for j in list2:
            for k in list3:
                base.add(base[0]'  '+i+' '+j+' '+k)
                print(base[len(base)])