Python 我怎样才能使它充满活力

Python 我怎样才能使它充满活力,python,loops,for-loop,python-2.7,urllib2,Python,Loops,For Loop,Python 2.7,Urllib2,我有一段代码我想优化,因为它启动它以增加容量:(.我想做一个数组并从他那里调用值,而不是像现在这样为每个对象创建代码: post_data_groups = {'profile': '46', 'clear': 'Remove+Avatar'} post_data_documents = {'folder1': '30', 'remove': 'Delete+Documents'} urlAdmin_groups = 'http://site.com/management.php?Catego

我有一段代码我想优化,因为它启动它以增加容量:(.我想做一个数组并从他那里调用值,而不是像现在这样为每个对象创建代码:

post_data_groups = {'profile': '46', 'clear': 'Remove+Avatar'}
post_data_documents = {'folder1': '30', 'remove': 'Delete+Documents'}

urlAdmin_groups = 'http://site.com/management.php?Category=6&uid=196'
urlModerator_groups = 'http://site.com/management.php?Category=6&uid=197'
..........
然后对于文档:

urlAdmin_documents = 'http://site.com/management.php?Category=3&uid=196'
urlModerator_documents = 'http://site.com/management.php?Category=3&suid=197'
.... and so on
data_groups= urllib.urlencode(post_data_groups)
data_documents= urllib.urlencode(post_data_documents)
然后我这样称呼他们:

response = opener.open(urlAdmin_groups, data_groups)
response = opener.open(urlAdmin_documents, data_documents)
........... and so on
the_page = response.read()

由于只有类别和uid更改,如何在调用它们时进行循环?

使用字符串作为模板:

url = 'http://site.com/management.php?Category={cat}&uid={uid}'
然后,您可以使用字符串的
.format()
方法填充插槽:

response = opener.open(url.format(cat=3, uid=196), data))
the_page = response.read()
您必须将其扩展到使用循环,在循环中,您迭代某些内容,然后提供类别和UID,但您明白了这一点。也许映射可以工作:

groups = {
    Admin: {'cat': 3, 'uid': 196},
    ...
}

for groupname, urlvalues in groups.iteritems():
    response = opener.open(url.format(**urlvalues), data_groups))

其中,
**
格式将字典作为一组关键字参数应用;使用
.format(**urlvalues)
基本上转换为
.format(cat=urlvalues['cat'],uid=urlvalues['uid'])

使用字符串作为模板:

url = 'http://site.com/management.php?Category={cat}&uid={uid}'
然后,您可以使用字符串的
.format()
方法填充插槽:

response = opener.open(url.format(cat=3, uid=196), data))
the_page = response.read()
您必须将其扩展到使用循环,在循环中,您迭代某些内容,然后提供类别和UID,但您明白了这一点。也许映射可以工作:

groups = {
    Admin: {'cat': 3, 'uid': 196},
    ...
}

for groupname, urlvalues in groups.iteritems():
    response = opener.open(url.format(**urlvalues), data_groups))

**
格式将字典作为一组关键字参数应用时,使用
.format(**urlvalues)
基本上可以转换为
.format(cat=urlvalues['cat'],uid=urlvalues['uid'])

基本上这是内置函数的一个很好的用例:

url = 'http://site.com/management.php?Category={cat}&uid={uid}'
cat_uids = [ (3,196), (3,197), ... ] # read thos from config file or...
urls = [ url%cat_uid for cat_uid in cat_uids ]
responses = map(opener.open, urls)
pages = map(response_class.read,responses) # where response_class is the class returned by open() 

基本上,它是内置功能的一个很好的用例:

url = 'http://site.com/management.php?Category={cat}&uid={uid}'
cat_uids = [ (3,196), (3,197), ... ] # read thos from config file or...
urls = [ url%cat_uid for cat_uid in cat_uids ]
responses = map(opener.open, urls)
pages = map(response_class.read,responses) # where response_class is the class returned by open() 

我尝试了一些东西,但没有找到神奇的解决方案。你能给我一个循环的例子吗?我尝试了一些东西,但没有找到神奇的解决方案。你能给我一个循环的例子吗?