我有一个网址列表,例如
urls = [a long list of urls]
现在我获得一个0到列表长度的随机整数,如下所示。
rand = random.randint(0, len(urls))
现在假设我有两种方法来调用say method1()和method2(),我想在它们上生成某种负载。
所以我第一次想要一个url,然后调用method1()和method2()并获取时间,下次从列表中选择两个url,然后调用两个方法,第三次调用三个url,依此类推。最后,我想绘制使用一个url,两个url等执行方法所花费的时间。
我该怎么办呢。
答案 0 :(得分:1)
正如问题陈述所说,first time I want one url, next time two urls from the list and so on
所以我们使用for循环来定义每次要获取的url数量,然后我们使用while循环来随机填充all_urls
列表唯一网址以及为什么我们使用if not rand_url in all_urls:
while循环是首选,因为它将继续迭代,直到我们获得指定数量的网址。
import random
for i in xrange(len(urls)):
all_urls = []
count = i
while (count>=0):
rand_url = urls[random.randint(0,len(urls)-1)]
if not rand_url in all_urls:
all_urls.append(rand_url)
count-=1
print all_urls
此代码的输出类似于:
['url_1']
['url_2', 'url_1']
['url_1', 'url_3', 'url_2']
... and so on
这里是上面代码的更简化版本,它也会让你在同一个输出上:
import random
for i in xrange(1,len(urls)):
print random.sample(urls,i)