在Python中迭代打印两种数据类型

时间:2010-12-29 00:06:40

标签: python

我经常在网上浏览自由艺术。实际上,我想不出更好地利用互联网,而不是把它变成一个巨大的艺术画廊。当我遇到一组我很喜欢的作品时,我将它们全部下载到我的硬盘上。 wget使这一切变得简单,特别是与Python的print函数结合使用时,我会一直使用它来制作我wget的网址列表。假设我需要在'art'目录中下载从art0到art100的jpeg列表,我告诉python

for i in range(0,101):
    print "http://somegallery/somedirectory/art", i

所以,这可能是一个相当简单的Python操作,在查找和替换后删除空格,只需要使用wget -i,但在我知道任何Python之前几天我都会盲目地右键单击并保存。

现在我有一堆来自弗雷德里克斯的文件。在纽约的弗雷泽画廊,所有去了(1-14),b(1-14),c(1-14)等,直到字母g。我可以在7次做到这一点,这比写这个SO问题花费的时间少。

那就是说,我想加深对Python的了解。因此,给定字母a-g,如何打印每个字母到整数1-14的映射?

4 个答案:

答案 0 :(得分:4)

for i in ['a','b','c','d','e','f','g']:
    for j in range(1,15):
        url = BASE_URL + i + str(j)
        print url

这就是你要找的东西吗?

答案 1 :(得分:3)

试试这个:

['{0}{1}'.format(letter, number + 1) for letter in 'abcdefg'
                                     for number in range(14)]

答案 2 :(得分:1)

['http://somegallery/somedirectory/art/%s%s\n' % (chr(ordinal), number) for ordinal in range(ord('a'), ord('g')+1) for number in range(1, 15)]

答案 3 :(得分:1)

你实际上并不需要Python。假设您使用bash作为shell(其他shell中存在类似的机制),您可以使用大括号扩展:

wget http://somegallery/somedirectory/art{a..g}{1..15}