Python 如何从列表中获取项目>;比X
我有一个名为“first_function()”的函数,它返回一个类的100个实例的列表。 然后我想定义第二个函数,它将创建一个新列表,其中包含从第一个函数()的输出列表中获取的随机实例,类似于:Python 如何从列表中获取项目>;比X,python,python-3.x,Python,Python 3.x,我有一个名为“first_function()”的函数,它返回一个类的100个实例的列表。 然后我想定义第二个函数,它将创建一个新列表,其中包含从第一个函数()的输出列表中获取的随机实例,类似于: first_funtion() def second_function(list2, N): list2 = list2(random.choice(first_function())) 问题是我希望list2总是大于N,所以如果N=5,我希望随机list2大于5个实例。如果N=10,那么
first_funtion()
def second_function(list2, N):
list2 = list2(random.choice(first_function()))
问题是我希望list2总是大于N,所以如果N=5,我希望随机list2大于5个实例。如果N=10,那么我希望列表中有10个以上的实例
如何操作?您可以首先使用
first\u函数创建列表,然后在N
和列表长度之间绘制一个随机整数,然后从列表中绘制一个随机样本
import random
def second_function(list2, N):
len_list = len(list2)
length = random.randint(N, len_list)
return random.sample(list2, length)
您可以首先使用first\u函数
创建列表,然后在N
和列表长度之间的范围内绘制一个随机整数,然后从列表中绘制一个随机样本
import random
def second_function(list2, N):
len_list = len(list2)
length = random.randint(N, len_list)
return random.sample(list2, length)
由于random.choice()
函数总是从列表中选取一个元素,因此您可以在列表中迭代N次以上,每次都使用random.choice()
。您还可以使用random.randint()
获得N以上的随机数,用于for
循环的范围函数
import random
def second_function(list2, N):
for i in range(N,random.randint(N,len( first function() ))) :
list2.append(random.choice(first_function()))
return list2
由于random.choice()
函数总是从列表中选取一个元素,因此您可以在列表中迭代N次以上,每次都使用random.choice()
。您还可以使用random.randint()
获得N以上的随机数,用于for
循环的范围函数
import random
def second_function(list2, N):
for i in range(N,random.randint(N,len( first function() ))) :
list2.append(random.choice(first_function()))
return list2
你可以用两个随机函数
- 使用第一个选项从列表1的不包括N到包括长度的范围中选择N的值,即,(N,len(列表1)]
- 并使用第二个选项从列表_1中选择x值的数量
因此,代码将如下所示:
import random
def second_function(list1, N):
x = random.randint(N+1, len(list1))
y = random.choices(list1, k=x)
print(y)
此处randint(开始,停止)
在生成随机整数时同时包含开始数和停止数。它将从包含的范围生成一个随机数
和random.choices()
函数返回任意列表中随机项的总数k
注意:如果使用的是random.choices()
,则可能会得到重复值。因此,如果要从列表中选择多个随机项而不重复,请使用random.sample()
函数
您可以访问链接并探索与此相关的更多信息。您可以使用两个随机函数
- 使用第一个选项从列表1的不包括N到包括长度的范围中选择N的值,即,(N,len(列表1)]
- 并使用第二个选项从列表_1中选择x值的数量
因此,代码将如下所示:
import random
def second_function(list1, N):
x = random.randint(N+1, len(list1))
y = random.choices(list1, k=x)
print(y)
此处randint(开始,停止)
在生成随机整数时同时包含开始数和停止数。它将从包含的范围生成一个随机数
和random.choices()
函数返回任意列表中随机项的总数k
注意:如果使用的是random.choices()
,则可能会得到重复值。因此,如果要从列表中选择多个随机项而不重复,请使用random.sample()
函数
您可以访问链接并探索与此相关的更多内容。您可以使用替换进行采样,这意味着元素可以多次出现在list2
中。我不清楚这个问题。您希望list2包含从第一个列表中随机选择的>N个元素。您说“我希望list2始终大于N”,但是y您不指明元素数的上限是多少。是否希望列表2中的元素数在N+1
和len(list1)
之间随机出现(其中list1
是first\u function()返回的列表)?您可以使用进行替换抽样,这意味着一个元素可以多次出现在list2
中。我不清楚这个问题。您希望list2由从第一个列表中随机选择的>N个元素组成。您说“我希望list2始终大于N”,但您没有指出元素数的上限nts是。是否希望列表2中的元素的随机数介于N+1
和len(list1)
之间(其中list1
是first\u function()
返回的列表)?如果我正确理解了问题,那么这应该是length=random.randint(N+1,len\u list)
因为OP说他们希望'list2始终大于N'个实例。如果我理解正确,那么这应该是length=random.randint(N+1,len_list)
因为OP说他们希望'list2始终大于N'个实例。