python-3.x - 高效循环数百万个元素
问题描述
我在通过“itertools.product”创建的列表中有一个包含 262144 个元素的列表。现在我必须遍历这些元素并将其与所有其他元素相乘,这会花费太多时间。(我没有任何内存/cpu问题)
elements = []
for e in itertools.product(range(4), repeat=9):
elements.append(e)
for row in elements:
for col in elements:
do_calculations(row, col)
def do_calculations(ro, co):
t = {}
t[0] = [multiply(c=ro[0], r=co[0])]
for i in range(1, len(ro)):
_t = []
for j in range(i+1):
_t.append(multiply(c=ro[j], r=co[i-j]))
t[i] = _t
for vals in t.values():
nx = len(vals)
_co = ro[nx:]
_ro = co[nx:]
for k in range(len(_ro)):
vals.append(multiply(c=_co[k], r=_ro[k]))
_t = []
for k in t.values():
s = k[0]
for j in range(1, len(k)):
s = addition(c=s, r=k[j])
_t.append(s)
return _t
def addition(c, r) -> int:
__a = [[0, 3, 1, 2],
[3, 2, 0, 1],
[0, 3, 2, 1],
[1, 0, 2, 3]]
return __a[c][r]
def multiply(c, r) -> int:
__m = [[0, 0, 0, 0],
[0, 1, 2, 3],
[0, 3, 1, 2],
[0, 2, 3, 1]]
return __m[c][r]
处理带有行的单个 col 花费了太多时间......有人可以帮助我吗?问候
解决方案
推荐阅读
- python-3.x - 在熊猫列表中删除括号和撇号的优雅方式
- pytorch - 如何在 PyTorch 中以特定的新维度重复张量
- mysql - 如何更新表设置从另一个表中选择的位置?
- sql - 这个 SSRS 开关表达式我做错了什么?
- python - ConnectionResetError: [WinError 10054] 将网站读入 Pandas 时
- python - 统计浏览次数文章
- sql - 如何在postgres中获取每个日期的数据计数
- android - Kotlin 协程 UI 未冻结
- python - TidBit 电脑商店的信用计划
- python-3.x - 为什么这个特定的 if 条件永远不会执行?[如果中间 < k <= 正确:]