我有一个排序列表,让我们说:(它不仅仅是数字,它是一个用复杂的耗时算法排序的对象列表)
mylist = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,9 , 10 ]
Run Code Online (Sandbox Code Playgroud)
是否有一些python函数会给我N个项目,但会保留订单吗?
例:
randomList = getRandom(mylist,4)
# randomList = [ 3 , 6 ,7 , 9 ]
randomList = getRandom(mylist,4)
# randomList = [ 1 , 2 , 4 , 8 ]
Run Code Online (Sandbox Code Playgroud)
等等...
我用Google搜索了很多但却找不到它.我想知道random.sample()方法的用法以及它给出了什么?什么时候应该使用它和一些示例用法.
我需要从群体中获得k大小的样本而无需替换,群体中的每个成员具有相关的权重(W).
Numpy的random.choices不会在没有替换的情况下执行此任务,random.sample将不会采用加权输入.
目前,这是我正在使用的:
P = np.zeros((1,Parent_number))
n=0
while n < Parent_number:
draw = random.choices(population,weights=W,k=1)
if draw not in P:
P[0,n] = draw[0]
n=n+1
P=np.asarray(sorted(P[0]))
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它需要在数组,列表和数组之间来回切换,因此不太理想.
我正在寻找最简单易懂的解决方案,因为此代码将与其他人共享.
我想创建一个代码,该代码将生成许多随机字符串(例如,在这种情况下为10)。我使用了下面的代码,但是代码不断生成相同的字符串
输入密码
import random
import string
s = string.ascii_lowercase
c = ''.join(random.choice(s) for i in range(8))
for x in range (0,10):
print(c)
Run Code Online (Sandbox Code Playgroud)
输出量
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
ashjkaes
press any key to continue .....
Run Code Online (Sandbox Code Playgroud)
请帮忙