创建包含30k数字的列表

时间:2011-11-22 00:12:04

标签: python

所以我试图比较排序列表的速度。我编写了自己的插入排序函数,我将它与在排序方法中构建的pythons进行比较。我现在正在尝试创建一个随机生成的列表,如30,000或任何数字。然后我将使用for循环从1000个数字的列表开始,并将其递增1000,直到达到30k。这是我到目前为止,我在使用for循环创建一个30k位的列表时遇到了麻烦。

    import time
    import random



def InsertionSort(A):
    for i in range(1,len(A),1):
        target = A[i]
        j = i - 1
        while j >=0 and target < A[j]:
            A[j+1] = A[j]
            j = j - 1
        A[j+1] = target
    return A

def TimSort(A):
    A.sort()

    return A

2 个答案:

答案 0 :(得分:3)

如果您需要生成N个随机数,可以使用:

import random
random_numbers = [ random.random() for _ in xrange(N) ]

random模块还有randint之类的方法用于返回随机整数。有关更多详细信息,请参阅其文档。

答案 1 :(得分:0)

如果你想为一个随机数字列表播种,你没有指定长度,所以我选择了65535。

import random

nums = range(65535)     # Original list of 65535 digits
random.shuffle(nums)    # Now they're in random order
first30k = nums[:30000] # 30,000 random digits from 0-65535 in random order