鱼C论坛

 找回密码
 立即注册
查看: 2694|回复: 16

如何把list里的子list展开?

[复制链接]
发表于 2014-11-25 18:04:15 | 显示全部楼层 |阅读模式

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

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

x
如何把list里的子list展开?
比如:
a=[[[1,2,3,4,5],[6,7,8,9]],[[2,3,4,5,6],[2,3,4,5]]]
如何把它变成:
a=[1,2,3,4,5,6,7,8,9,2,3,4,5,6,2,3,4,5]
然后再只取不重复的元素:
a=[1,2,3,4,5,6,7,8,9]

请高手回答?
多谢!

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-11-25 23:15:20 | 显示全部楼层
  1. >>> import itertools
  2. >>> a=[[[1,2,3,4,5],[6,7,8,9]],[[2,3,4,5,6],[2,3,4,5]]]
  3. >>> while type(a[1]) == list:
  4.         a = list(itertools.chain(*a))

  5.        
  6. >>> a
  7. [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 2, 3, 4, 5]
  8. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2014-11-25 18:43:54 | 显示全部楼层
可以自己写一个。
  1. def sca(a):
  2.         i = 0
  3.         while i<len(a):
  4.                 try:
  5.                         for j in range(len(a[i])):
  6.                                 a[i:i+1] = a[i]
  7.                 except:
  8.                         i += 1
  9.         return list(set(a))
复制代码

360截图20141125184449965.jpg

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-25 20:00:39 | 显示全部楼层
itertools.chain() @wei_Y
才学过又忘了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-25 21:43:49 | 显示全部楼层
bevin 发表于 2014-11-25 20:00
itertools.chain() @wei_Y
才学过又忘了?

卧槽,当时看的时候还以为没个P用。。原来这么好用。。




  1. def sca(a):
  2.         import itertools
  3.         while 1:
  4.                 try:
  5.                         a = list(itertools.chain(*a))
  6.                 except:
  7.                         break
  8.         return list(set(a))
复制代码

改好啦。。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-25 23:16:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-26 10:22:10 | 显示全部楼层

我发现要是下标0的列表里比其他的列表里的列表少不能完全打散。。
还得迭代。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-26 11:08:23 | 显示全部楼层
谢谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-26 11:56:57 | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-26 12:45:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-27 13:23:44 | 显示全部楼层
多谢,大家:)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-27 22:40:01 | 显示全部楼层
:victory:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-11-28 09:19:47 | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-28 09:54:31 | 显示全部楼层
多谢,学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-30 17:03:55 | 显示全部楼层
学习了{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-2 18:13:00 | 显示全部楼层
bevin 发表于 2014-11-25 20:00
itertools.chain() @wei_Y
才学过又忘了?

这个有教过? 小甲鱼的课程里没看到过。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-2 22:11:03 | 显示全部楼层
:victory:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-13 16:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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