python-3.x - 超出python排列时间限制
问题描述
我有一个n
具有最大值的数字,直到1_000_000
我必须创建一个列表li=range(0,n)
并找到 2 个项目的排列
我正在使用此代码
from itertools import permutations
perm = permutations(li,2)
for i in list(perm):
print(i)
此代码适用于较小的值n
但是如果它的数量很大,我会收到超出时间限制的错误
如何在不使用外部库的情况下解决这些超时错误
解决方案
不要强制列出您的perm
变量,只需perm
在您的 for 循环中使用您的:
for i in perm:
print(i)
小心,你的程序需要很长时间,因为你有999999000000
行要打印
不强制列出您的变量的原因perm
是不要将所有排列都保存在内存中(您可能会内存不足或需要很长时间)
推荐阅读
- azure-resource-manager - Azure ARM:父资源是否仅在子资源完成后才完成?
- ruby - 将 Rails 从 5.1 升级到 5.2 后,我收到以下警告消息
- node.js - 从 Promise.then() 返回 API 响应
- spring - Spring Batch 两步一决策者
- sympy - 使用带有 xlim 和 ylim 的弧度绘制正弦函数
- javascript - 为什么我的路由在 Ember Js 中不起作用?
- mongodb - 无法使用 $or 和多个 $exists 进行更新
- mysql - 查询今天和未来 6 个月之间的日期
- java - 在 Spring Boot Web 应用程序中禁用 csrf 的原因是什么?
- javascript - 将 Nuxt Vue.js 应用程序部署到 Google App Engine 时出现“无法获取 /”错误