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()
我尝试了一些东西,但没有找到神奇的解决方案。你能给我一个循环的例子吗?我尝试了一些东西,但没有找到神奇的解决方案。你能给我一个循环的例子吗?