如何使用排列生成的列表值生成文本

时间:2019-07-16 14:43:58

标签: python string permutation

我有:

N = 0-29之间的数字列表

A =所有字母的列表。

我想将它们组合起来以获取从0a0到29z29的所有“ NAN”排列

然后,我想使用这些“ NAN”排列中的每个排列并将它们放入URL中,这样我就可以获得类似  “ http://www.geo.ma/NAN.txt

import string
import itertools

#Generate the letter list
Alist=list(string.ascii_lowercase)
#Generate the number list
Nlist=list(range(30))

#Combine them in order to get "ABA"
CombinedList=(list((itertools.product(Nlist, Alist, Nlist))))

print(CombinedList)

我有了列表,但是现在我尝试在URL内获取排列:

for i in CombinedList:
    print('http://www.geo.ma/', i)

但是我明白了 http://www.geo.ma/ (29, z, 29) 而不是我想要得到的: http://geo.ma/29z29.txt

如果在尝试使用StringedList = str(CombinedList)生成URL之前尝试将List转换为字符串,那么python只会使用每个字符来生成URL,因此我会得到http://geo.ma/].txt,{ {1}},http://geo.ma/9.txthttp://geo.ma/z.txthttp://geo.ma/).txt等。

3 个答案:

答案 0 :(得分:2)

baseURL = "http://www.geo.ma/"
for pair in CombinedList:
    N1, A, N2 = pair
    print(f"{baseURL}{N1}{A}{N2}.txt")

答案 1 :(得分:2)

使用.join()

for i in CombinedList:
    print('http://www.geo.ma/{}'.format(''.join(map(str,i))))

输出:

...

http://www.geo.ma/29z22
http://www.geo.ma/29z23
http://www.geo.ma/29z24
http://www.geo.ma/29z25
http://www.geo.ma/29z26
http://www.geo.ma/29z27
http://www.geo.ma/29z28
http://www.geo.ma/29z29

答案 2 :(得分:0)

for i in CombinedList:
    print('http://www.geo.ma/'+str(i[0])+i[1]+str(i[2])+'.txt')

输出为

http://www.geo.ma/0a0.txt
http://www.geo.ma/0a1.txt
http://www.geo.ma/0a2.txt
http://www.geo.ma/0a3.txt
http://www.geo.ma/0a4.txt
http://www.geo.ma/0a5.txt
http://www.geo.ma/0a6.txt
http://www.geo.ma/0a7.txt
http://www.geo.ma/0a8.txt
...