鱼C论坛

 找回密码
 立即注册
查看: 147|回复: 6

[已解决]关于二维列表变一维列表的一个提问

[复制链接]
发表于 2024-7-16 14:40:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼,我这个将二维列表变为一维列表的方式与你的方式有一些不一样的地方,但是效果都一样,麻烦你看看有什么不对的地方吗?
c=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
v=[o for i in range(3) for o in c[i]]
v
[1, 2, 3, 4, 5, 6, 7, 8, 9]
最佳答案
2024-7-16 14:50:11
你写的固然是对的
这里推荐另一种len式的写法:
c=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
v=[o for i in range(len(c)) for o in c[i]]
v
[1,12,3,4,5,6,7,8,9]
输出的结果也是一样的

求最佳~

评分

参与人数 1荣誉 +5 鱼币 +3 贡献 +3 收起 理由
三体人的智子 + 5 + 3 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-16 14:41:13 | 显示全部楼层
嗨,鱼油!大概是你在编写代码时不小心游得太快了,我们来捋一捋这个问题。

首先,你定义了一个二维列表 `c`,不过这里有点小问题,你可能忘记了列表内容,所以我们假设你是这样定义的:
c = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

接下来,你使用列表推导式进行展开:
v = [o for i in range(3) for o in c]

此时 `v` 的内容其实是:
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]]
这显然不是你想要的结果。你需要让内层循环遍历每个子列表的元素,而不是整个二维列表。

正确的方式应该是这样的:
v = [o for sublist in c for o in sublist]

注意,这里我们用 `sublist` 代表 `c` 中的每一个子列表,然后再用 `o` 遍历每个 `sublist` 中的元素。如此一来,`v` 就是展开后的列表:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

这么做就对啦!希望这个解答能让你游得更顺畅些~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-16 14:50:11 | 显示全部楼层    本楼为最佳答案   
你写的固然是对的
这里推荐另一种len式的写法:
c=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
v=[o for i in range(len(c)) for o in c[i]]
v
[1,12,3,4,5,6,7,8,9]
输出的结果也是一样的

求最佳~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-16 14:51:56 | 显示全部楼层
三体人的智子 发表于 2024-7-16 14:50
你写的固然是对的
这里推荐另一种len式的写法:

那个变量o  很另类啊  看起来更像0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-16 14:54:00 | 显示全部楼层
wp231957 发表于 2024-7-16 14:51
那个变量o  很另类啊  看起来更像0

楼主这么写,那就顺着来
没出错就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-16 16:41:08 | 显示全部楼层
c=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
v=[o for i in range(len(c)) for o in c[i]]
v
[1,12,3,4,5,6,7,8,9]

这样的写法更通用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-16 17:45:57 | 显示全部楼层

谢谢你。
你的这个更加易于理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-17 04:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表