如何从大于X的列表中获取项目

2024-04-25 09:24:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“first_function()”的函数,它返回一个类的100个实例的列表。 然后我想定义第二个函数,它将创建一个新列表,其中包含从第一个函数()的输出列表中获取的随机实例,类似于:

first_funtion()

def second_function(list2, N):
    list2 = list2(random.choice(first_function()))

问题是我希望list2总是大于N,所以如果N=5,我希望随机list2大于5个实例。如果N=10,那么我希望列表中有10个以上的实例

我该怎么做


Tags: 实例函数列表定义deffunctionrandomfirst
3条回答

由于random.choice()函数总是从列表中选取一个元素,因此您可以在列表中迭代N次以上,每次都使用random.choice()。您还可以使用random.randint()获得N以上的随机数,用于for循环的range函数

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,len(列表1)]

     x = random.randint(N+1, len(list1)
    
  • 并使用第二个选项从列表1中选择值的数量

     random.choices(list1, k=x)
    

因此,代码将如下所示:

import random

def second_function(list1, N):
   x = random.randint(N+1, len(list1))
   y = random.choices(list1, k=x)
   print(y)

此处randint(start, stop)在生成随机整数时同时包含起始数和停止数。它将从包含的范围生成随机数

函数返回任意列表中随机项的总数

注意:如果使用random.choices (),可能会得到重复的值。因此,如果要从列表中选择多个随机项而不重复,请使用random.sample()函数

您可以访问this链接并探索与此相关的更多内容

您可以首先使用first_function创建列表,然后在N和列表长度之间绘制一个随机整数,然后从列表中绘制一个随机样本

import random

def second_function(list2, N):
    len_list = len(list2)
    length = random.randint(N, len_list)
    return random.sample(list2, length)

相关问题 更多 >