从python文件导入时,如何修复嵌套在for循环中的numpy.random.choice输出?

从python文件导入时,如何修复嵌套在for循环中的numpy.random.choice输出?,python,numpy,random,Python,Numpy,Random,问题: import numpy as np def create_baskets(num_baskets, max_basket_size, unique_items): """ Create list of baskets of variable length >= 3 Parameters ---------- num_baskets: number of baskets (sub-lists) max_baske

问题

import numpy as np

def create_baskets(num_baskets, max_basket_size, unique_items):
    """
    Create list of baskets of variable length >= 3

    Parameters
    ----------
    num_baskets: 
        number of baskets (sub-lists)
    max_basket_size: maximum basket size
        Baskets will be of size range(3, max_basket_size)
    unique_items:
        number of unique items

    Returns
    -------
    ret: list of "baskets", of randomly generated length
    """
    baskets = []
    for i in range(num_baskets):
        n = np.random.choice(range(3, max_basket_size), 1)
        basket = np.random.choice(range(0, unique_items), n, replace=False)
        baskets.append(basket)
    return baskets
我试图生成多个不同长度的随机数列表。在长度为
num_baskets
循环中,我使用
np.random.choice
为每个连续列表的长度生成一个数字
n
。然后,
np.random.choice
再次生成长度为
n
的随机数列表

预期产出

import numpy as np

def create_baskets(num_baskets, max_basket_size, unique_items):
    """
    Create list of baskets of variable length >= 3

    Parameters
    ----------
    num_baskets: 
        number of baskets (sub-lists)
    max_basket_size: maximum basket size
        Baskets will be of size range(3, max_basket_size)
    unique_items:
        number of unique items

    Returns
    -------
    ret: list of "baskets", of randomly generated length
    """
    baskets = []
    for i in range(num_baskets):
        n = np.random.choice(range(3, max_basket_size), 1)
        basket = np.random.choice(range(0, unique_items), n, replace=False)
        baskets.append(basket)
    return baskets
长度
num_篮的列表
,列表中的每一项都是另一个随机长度
n

电流输出: 长度
num_篮的列表
,但子列表长度一致。但是,每次运行该函数时,每次调用的子列表长度都不同(但仍然一致)

我尝试过的:

当我从python文件导入函数时(例如,从python文件导入创建篮的
与预期输出有偏差。尽管在每个循环中重新定义了
n
,但所有输出列表的长度都相同

然而,当我复制粘贴函数并在jupyter笔记本中定义它时,我会得到不同列表长度的预期输出

我的代码

import numpy as np

def create_baskets(num_baskets, max_basket_size, unique_items):
    """
    Create list of baskets of variable length >= 3

    Parameters
    ----------
    num_baskets: 
        number of baskets (sub-lists)
    max_basket_size: maximum basket size
        Baskets will be of size range(3, max_basket_size)
    unique_items:
        number of unique items

    Returns
    -------
    ret: list of "baskets", of randomly generated length
    """
    baskets = []
    for i in range(num_baskets):
        n = np.random.choice(range(3, max_basket_size), 1)
        basket = np.random.choice(range(0, unique_items), n, replace=False)
        baskets.append(basket)
    return baskets

我不确定函数的编写方式是否存在根本错误/可改进之处,或者导入是否存在问题。

我重新启动了Jupyter内核,以便在导入时反映对python文件代码所做的必要更改


尽管在笔记本中多次重新导入模块,但Jupyter没有更新对python文件所做的更改并保存在我的文本编辑器中,这是一个问题。

我重新启动了Jupyter内核,以便在导入时反映对python文件代码所做的必要更改

尽管在笔记本中多次重新导入模块,但Jupyter没有更新对python文件所做的更改并保存在我的文本编辑器中,这是一个问题