如何在python中获得这种行为

2024-04-26 20:42:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个URL列表,比如

urls = [a long list of urls]

现在我得到一个介于0和列表长度之间的随机整数,如下所示。你知道吗

rand = random.randint(0, len(urls))

现在假设我有两个方法来调用say method1()和method2(),我想在它们上生成某种负载。你知道吗

所以第一次我想要一个url,然后调用method1()和method2()并获取时间,下一次从列表中调用两个url,然后调用两个方法,第三次调用三个url,以此类推。最后,我想用一个url和两个url来绘制执行方法所花费的时间,以此类推。你知道吗

我该怎么做。你知道吗


Tags: of方法url列表时间整数randomurls
1条回答
网友
1楼 · 发布于 2024-04-26 20:42:24

正如问题陈述所说,first time I want one url, next time two urls from the list and so on所以我们使用for循环来定义每次要获取的url的数量,然后我们使用while循环用随机的唯一的url填充all_urls列表,这就是为什么我们使用if not rand_url in all_urls:while循环是首选的,因为它将不断迭代,直到我们得到指定数量的url。你知道吗

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)

相关问题 更多 >