gpt4 book ai didi

不使用 numpy 或任何东西的 python 矩阵创建以及行和列的最大总和

转载 作者:行者123 更新时间:2023-11-28 20:17:41 25 4
gpt4 key购买 nike

想在python中创建如下矩阵

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

但不确定该怎么做,我尝试了如下列表理解

[[y+x for y in range(4)] for x in range(4)]

输出如下

[[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6]]

并且还想打印总和最大的行和总和最大的列。

提前致谢

最佳答案

[[x * 4 + y + 1 for y in range(4)] for x in range(4)]

相当于:

[[(x << 2) + y for y in range(1, 5)] for x in range(4)]

这里有一个小基准:

import timeit


def f1():
return [[x * 4 + y + 1 for y in range(4)] for x in range(4)]


def f2():
return [[(x << 2) + y for y in range(1, 5)] for x in range(4)]


def f3():
a = range(1, 5)
return [[(x << 2) + y for y in a] for x in range(4)]

N = 5000000
print timeit.timeit('f1()', setup='from __main__ import f1', number=N)
print timeit.timeit('f2()', setup='from __main__ import f2', number=N)
print timeit.timeit('f3()', setup='from __main__ import f3', number=N)

# 13.683984791
# 13.4605276559
# 9.65608339037
# [Finished in 36.9s]

我们可以得出结论,f1 和 f2 方法的性能几乎相同。所以像 f3 一样只计算一次内部 range(1,5) 是个不错的选择

关于不使用 numpy 或任何东西的 python 矩阵创建以及行和列的最大总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39250315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com