Itertools组合错误 /内存问题



我是一名金融研究生,是Python的新生。我必须为学校项目创建500个股票的可能组合列表。(用NCR术语,我需要500C2,500C3,...,500C498,500C499,500C500)

我有以下代码:

    tickers = list of the 500 stocks I'm using
    import itertools
    w = len(tickers) + 1 
    i = 2
    test_list = []
    while i < w:
        combinations = list(itertools.combinations(tickers,i))
        test_list.append(combinations)
    i = i + 1
print(test_list)

但是,运行代码时会遇到以下错误。任何帮助是极大的赞赏。

IOPUB数据速率超过了。笔记本服务器将暂时停止发送输出给客户以避免崩溃。要更改此限制,请设置配置变量-notebookapp.iopub_data_rate_limit。当前值:NotesbookApp.iopub_data_rate_limit = 1000000.0(bytes/sec)NotesbookApp.Rate_limit_window = 3.0(secs)

有500!当您尝试将它们全部附加到test_list时。

因此,无论您尝试使用这些组合做出的计算和/或I/O操作,都可以直接在循环中进行操作,并且不要将组合存储在列表中。但是话又说回来,这是大量的组合,即使循环什么也没做,您也可能会很难完成循环。您应该重新考虑要解决的问题的方法。

最新更新