python生成以

python生成以,python,Python,在下面的arr中,我想生成以“1”和“2”开头的随机数。如何做到这一点。我想总是以“1”和“2”开头,其余的可以是随机的 example output : 123456789 123478956 124568973 123789456 arr=["1","2","3","4","5","6","7","8","9"] for i in range(50): lines =

在下面的arr中,我想生成以“1”和“2”开头的随机数。如何做到这一点。我想总是以“1”和“2”开头,其余的可以是随机的

example output : 123456789
                 123478956
                 124568973
                 123789456   



 arr=["1","2","3","4","5","6","7","8","9"]

 for i in range(50):
   lines = random.sample(arr, 9) //I want always to start with "1" and "2" and the rest can be random
   print "%s"%''.join(lines)

改变你的选择声明

lines = random.sample(arr[:2],1) + random.sample(arr, 8) 

Concat
['1','2']
,其余8个元素被洗牌

>>> ['1', '2'] + random.sample(arr[2:], 7)
['1', '2', '6', '3', '8', '7', '9', '5', '4']

您可以使用
random.randrange()
这里您必须给出起始和结束数字

import random

for i in range(50):
        lines = random.randrange(120000000,130000000)
        print lines

这将为您提供50个以1和2开头的随机数

如果您想使用python的一个好功能,可以使用生成器提高内存效率:

from random import randrange

def onetworandom(length):
    yield 1
    yield 2
    for i in range(length-2):
        yield randrange(0,10)

myvalue = [x for x in onetworandom(10)]

print myvalue
[1, 2, 8, 2, 9, 2, 6, 7, 6, 1]

前两个之后的元素永远不会包括
1