我不确定我百分百确定你在找什么 但这里要尝试一下:
import random as rn
x = range(3)*2 #generate a list where each number appears twice
rn.shuffle(x) #shuffle it
x.pop() #remove one number
结果:
>>> x
[2, 0, 2, 1, 0] #the result is a list where every number appears twice, except for
#one number which was removed at random, also the numbers are
#randomly arranged
编辑:
在此尝试对非常大的 n ( 无法将如此大小的列表存储在您的 RAME 中) 进行此操作 。 我无法看到如何冲洗整数 。 然而, 我可以随机删除一个 。 换句话说您想要将列表写入 txt 文件 。
drop = rn.range(0,n) #choose a random integer to drop
with open( my_file.txt , w ) as f:
for ind,ele in enumerate(xrange(n)):
if ind == drop: #do not write the element to txt file
pass
else:
f.write(str(ele) +
) #write every except for one element to txt file
with open( my_file.txt , a ) as f:
for ele in xrange(n):
f.write(str(ele) +
) # write every element to txt file
最后,我们被写成 n-1 元素两次到 txt 文件, 1 元素一次, 该元素是随机选择的 。
对于 n= 5, txt 文件看起来像这个 :
0
2
3
4
0
1
2
3
4
在上述情况中,1只出现一次,其他数字出现两次。