mumei2018 发表于 2023-5-3 19:25:10

python25回动手0题 我在甲鱼的答案上加了点东西 请大佬看看合适不

我的答案如下
matrix = [,
          ,
          ]

platted =

count_eli = len(matrix)
#获取matrix的长度
countAll_eli = len(platted)
#获取matrix总共有几个元素
countSon_eli = int(countAll_eli / count_eli)
#获取内层长度

Tmatrix = [ for row in matrix] for i in range(countSon_eli)]


print(Tmatrix)


以下是甲鱼的答案
Tmatrix = [ for row in matrix] for i in range(4)]
Tmatrix

甲鱼的答案里指定了 range(4)

我加的东西 感觉和可以应用于任何列数的矩阵

这样没问题吗?

防止复制粘贴出错 我把代码的图片也付上

看图也知道 一直修 修 修 修出来的

isdkz 发表于 2023-5-3 19:25:50

您好,您的代码看起来没有问题。在您的代码中,您使用了len()函数来动态计算了矩阵中的行数和列数,并在后续代码中使用这些变量进行计算,以获得转置矩阵。这种方法可以适用于任何行列数的矩阵。

相比之下,甲鱼的答案指定了一个固定的值4来代表列数。这种方法只适用于具有四列的矩阵,并且不适用于其他列数的矩阵。

因此,您的代码比甲鱼的答案更加通用和灵活。

歌者文明清理员 发表于 2023-5-3 19:26:01

本帖最后由 歌者文明清理员 于 2023-5-3 19:30 编辑

您的做法是完全正确的。使用 `countSon_eli` 替代了硬编码的 `4`,使得您的代码可以适用于任何列数的矩阵。这样的扩展性更好,也更符合良好的编程习惯。感谢您的认真思考和努力编写代码。

以下是对您的代码进行逐行解释的说明:

复制代码
matrix = [,
          ,
          ]
定义了一个包含三个列表的二维列表,表示一个 3x4 的矩阵。

复制代码
platted =
将 matrix 中的所有元素打平成一维,存储到名为 platted 的列表中。 是列表生成式的一种,表示先遍历 matrix 中的每个子列表 i,再遍历每个子列表 i 中的元素 j,最后将所有元素 j 组合成新的列表。

复制代码
count_eli = len(matrix)
#获取matrix的长度
使用内置函数 len() 获取二维列表 matrix 的外层长度,即行数。将行数记录为变量 count_eli。

复制代码
countAll_eli = len(platted)
#获取matrix总共有几个元素
使用 len() 函数统计 platted 列表中的元素个数,也就是矩阵 matrix 元素的总个数。将总个数记录为变量 countAll_eli。

复制代码
countSon_eli = int(countAll_eli / count_eli)
#获取内层长度
计算除外层数量 count_eli 外,每行子列表的元素个数。注意使用整除 // 符号得到一个整型数值,并将其记录为变量 countSon_eli。

复制代码
Tmatrix = [ for row in matrix] for i in range(countSon_eli)]
定义新的二维列表 Tmatrix,使用列表生成式遍历 range(countSon_eli) 数值序列,得到每个下标值 i 时的列表 for row in matrix],用于存储矩阵 matrix 中每个列向量的元素值。其中 for row in matrix] 表示 matrix 列表中第 i 列的所有元素值,是列表生成式的另一种用法。在一段嵌套的列表生成式中,内层部分 for row in matrix] 先执行,返回一个内层列表,然后外层部分 for i in range(countSon_eli) 再遍历该列表,并将遍历到的所有子列表依次添加到 Tmatrix 的末尾,得到最终结果。

复制代码
print(Tmatrix)
打印转置后的矩阵 Tmatrix。

歌者文明清理员 发表于 2023-5-3 19:30:07

isdkz 发表于 2023-5-3 19:25
您好,您的代码看起来没有问题。在您的代码中,您使用了len()函数来动态计算了矩阵中的行数和列数,并 ...

《虎视眈眈》

isdkz 发表于 2023-5-3 19:30:58

歌者文明清理员 发表于 2023-5-3 19:30
《虎视眈眈》

{:10_249:}

Threebody1 发表于 2023-5-3 19:31:27

isdkz 发表于 2023-5-3 19:30


{:10_245:}
你得从gpt的嘴里多问点

isdkz 发表于 2023-5-3 19:32:59

Threebody1 发表于 2023-5-3 19:31
你得从gpt的嘴里多问点

这个貌似不必要多问吧,不是你写得越多就越能拿最佳的{:10_256:}

isdkz 发表于 2023-5-3 19:35:13

Threebody1 发表于 2023-5-3 19:31
你得从gpt的嘴里多问点

我搭建了一个 chatgpt,你要不要试试?

http://chat.isdkz.top:7860/
账号:guest
密码:O]=RWuW<}GzO|MM

sfqxx 发表于 2023-5-3 19:39:53

你的代码思路是对的,并且在计算出矩阵元素个数、内层数量后,使用了算法来转置二维矩阵。和甲鱼的答案相比,你的答案多了一个计算内层数量的步骤,但这并不影响结果。在 Python 中,可以使用列表推导式配合 range() 函数来一次性生成转置后的矩阵。所以你的代码是正确的。另外,建议在代码中添加注释,使其更易读懂。

总之,恭喜你完成这道题目!

陶远航 发表于 2023-5-3 19:42:05

isdkz 发表于 2023-5-3 19:35
我搭建了一个 chatgpt,你要不要试试?

http://chat.isdkz.top:7860/


没有GPT4差评

isdkz 发表于 2023-5-3 19:43:07

陶远航 发表于 2023-5-3 19:42
没有GPT4差评

我有 gpt4 的 key,但是 gpt4 花费太高了,就没放上去{:10_266:}

陶远航 发表于 2023-5-3 19:43:49

isdkz 发表于 2023-5-3 19:43
我有 gpt4 的 key,但是 gpt4 花费太高了,就没放上去

az
好吧

歌者文明清理员 发表于 2023-5-3 22:22:00

isdkz 发表于 2023-5-3 19:32
这个貌似不必要多问吧,不是你写得越多就越能拿最佳的

打脸时间到!

isdkz 发表于 2023-5-3 22:22:57

歌者文明清理员 发表于 2023-5-3 22:22
打脸时间到!

。。。。这也行?

歌者文明清理员 发表于 2023-5-3 22:23:46

isdkz 发表于 2023-5-3 22:22
。。。。这也行?

你的gpt加载不出来,就是空页面,被墙了?

isdkz 发表于 2023-5-3 22:26:39

歌者文明清理员 发表于 2023-5-3 22:23
你的gpt加载不出来,就是空页面,被墙了?

没有,我觉得是因为你开了那个插件

歌者文明清理员 发表于 2023-5-3 22:27:57

isdkz 发表于 2023-5-3 22:26
没有,我觉得是因为你开了那个插件

没,我啥也没开

isdkz 发表于 2023-5-3 22:28:40

歌者文明清理员 发表于 2023-5-3 22:27
没,我啥也没开

你换个浏览器,或者开个无痕试试

歌者文明清理员 发表于 2023-5-3 22:29:58

isdkz 发表于 2023-5-3 22:26
没有,我觉得是因为你开了那个插件

Incorrect Credentials

isdkz 发表于 2023-5-3 22:30:34

歌者文明清理员 发表于 2023-5-3 22:29
Incorrect Credentials

改了,你看3楼
页: [1] 2
查看完整版本: python25回动手0题 我在甲鱼的答案上加了点东西 请大佬看看合适不