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)
我加的东西 感觉和可以应用于任何列数的矩阵
这样没问题吗?
防止复制粘贴出错 我把代码的图片也付上
看图也知道 一直修 修 修 修出来的
您好,您的代码看起来没有问题。在您的代码中,您使用了len()函数来动态计算了矩阵中的行数和列数,并在后续代码中使用这些变量进行计算,以获得转置矩阵。这种方法可以适用于任何行列数的矩阵。
相比之下,甲鱼的答案指定了一个固定的值4来代表列数。这种方法只适用于具有四列的矩阵,并且不适用于其他列数的矩阵。
因此,您的代码比甲鱼的答案更加通用和灵活。 本帖最后由 歌者文明清理员 于 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。 isdkz 发表于 2023-5-3 19:25
您好,您的代码看起来没有问题。在您的代码中,您使用了len()函数来动态计算了矩阵中的行数和列数,并 ...
《虎视眈眈》 歌者文明清理员 发表于 2023-5-3 19:30
《虎视眈眈》
{:10_249:} isdkz 发表于 2023-5-3 19:30
{:10_245:}
你得从gpt的嘴里多问点 Threebody1 发表于 2023-5-3 19:31
你得从gpt的嘴里多问点
这个貌似不必要多问吧,不是你写得越多就越能拿最佳的{:10_256:} Threebody1 发表于 2023-5-3 19:31
你得从gpt的嘴里多问点
我搭建了一个 chatgpt,你要不要试试?
http://chat.isdkz.top:7860/
账号:guest
密码:O]=RWuW<}GzO|MM
你的代码思路是对的,并且在计算出矩阵元素个数、内层数量后,使用了算法来转置二维矩阵。和甲鱼的答案相比,你的答案多了一个计算内层数量的步骤,但这并不影响结果。在 Python 中,可以使用列表推导式配合 range() 函数来一次性生成转置后的矩阵。所以你的代码是正确的。另外,建议在代码中添加注释,使其更易读懂。
总之,恭喜你完成这道题目! isdkz 发表于 2023-5-3 19:35
我搭建了一个 chatgpt,你要不要试试?
http://chat.isdkz.top:7860/
没有GPT4差评 陶远航 发表于 2023-5-3 19:42
没有GPT4差评
我有 gpt4 的 key,但是 gpt4 花费太高了,就没放上去{:10_266:} isdkz 发表于 2023-5-3 19:43
我有 gpt4 的 key,但是 gpt4 花费太高了,就没放上去
az
好吧 isdkz 发表于 2023-5-3 19:32
这个貌似不必要多问吧,不是你写得越多就越能拿最佳的
打脸时间到! 歌者文明清理员 发表于 2023-5-3 22:22
打脸时间到!
。。。。这也行? isdkz 发表于 2023-5-3 22:22
。。。。这也行?
你的gpt加载不出来,就是空页面,被墙了? 歌者文明清理员 发表于 2023-5-3 22:23
你的gpt加载不出来,就是空页面,被墙了?
没有,我觉得是因为你开了那个插件 isdkz 发表于 2023-5-3 22:26
没有,我觉得是因为你开了那个插件
没,我啥也没开 歌者文明清理员 发表于 2023-5-3 22:27
没,我啥也没开
你换个浏览器,或者开个无痕试试 isdkz 发表于 2023-5-3 22:26
没有,我觉得是因为你开了那个插件
Incorrect Credentials 歌者文明清理员 发表于 2023-5-3 22:29
Incorrect Credentials
改了,你看3楼
页:
[1]
2