连接Python中两个列表中的所有项目

时间:2013-07-28 20:40:48

标签: python

我想从两个列表中生成可能的网站列表:

strings = ["string1", "string2", "string3"]
tlds = ["com', "net", "org"]

产生以下输出:

string1.com  
string1.net  
string1.org  
string2.com  
string2.net  
string2.org 

我必须这样做:

for i in strings:
    print i + tlds[0:]

但是我无法连接str和list对象。我该如何加入这些?

4 个答案:

答案 0 :(得分:13)

itertools.product就是为此而设计的。

url_tuples = itertools.product(strings, tlds)
urls = ['.'.join(url_tuple) for url_tuple in url_tuples]
print(urls)

答案 1 :(得分:6)

(嵌套)列表理解将是另一种选择:

[s + '.' + tld for s in strings for tld in tlds]

答案 2 :(得分:5)

itertools模块提供了执行此操作的功能。

from itertools import product
urls = [".".join(elem) for elem in product(strings, tlds)]

urls变量现在保存此列表:

['string1.com',
 'string1.net',
 'string1.org',
 'string2.com',
 'string2.net',
 'string2.org',
 'string3.com',
 'string3.net',
 'string3.org']

答案 3 :(得分:2)

编写此内容的一种非常简单的方法与大多数其他语言相同。

for s in strings:
    for t in tlds:
        print s + '.' + t