将数组映射到另一个数组中的每个项目? (蟒蛇)

时间:2015-11-14 20:49:19

标签: python arrays

我正在尝试为抓取工具生成一些可预测的网址。

我有一组基本网址:

base_urls = ['http://something.com/john', 
             'http://something.com/sally']

每个日历都有一个唯一的网址:

to_append = ['-mon-calendar', 
             '-tues-calendar', 
             '-wed-calendar', 
             '-thurs-calendar', 
             '-fri-calendar']

我需要生成一个新数组,其中包含所有人每周日历的完整列表(例如'http://something.com/john-mon-calendar',...

我可以在很长的路上进行迭代,但假设可以使用map()更有效地完成此操作。我没有使用过很多地图而且用两个迭代来做这件事让我失望了。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:8)

您可以使用itertools.product在列表之间创建笛卡尔积,然后join列表推导中的每个项目。

>>> from itertools import product
>>> [''.join(i) for i in product(base_urls, to_append)]
['http://something.com/john-mon-calendar',
 'http://something.com/john-tues-calendar',
 'http://something.com/john-wed-calendar',
 'http://something.com/john-thurs-calendar',
 'http://something.com/john-fri-calendar',
 'http://something.com/sally-mon-calendar',
 'http://something.com/sally-tues-calendar',
 'http://something.com/sally-wed-calendar',
 'http://something.com/sally-thurs-calendar',
 'http://something.com/sally-fri-calendar']

答案 1 :(得分:1)

没有图书馆:

0x1C75288