作者KSJ (阿真)
看板Python
标题Re: [问题] 多层list的搜寻法
时间Sun Oct 25 08:09:45 2009
※ 引述《wil771126 (雨的印记)》之铭言:
: 我有一个资料结构 需要两层list来纪录 如下:
: li = [[0,'a',2],
: [0,'b',1],
: [1,'a',2],
: [2,'b',0]]
: 我想蒐集其中的子list(3个一组的那部份)第一项为0的部份
: for i in range(3):
: if i in ???
: ....
: 我的想法是要多一层回圈
: for i in range(3):
: for j in li:
: if i in j[0]:
: ...
: 但感觉这样的程式可读性会降低 有没有人有其他想法呢
: 对不吝分享的大大先说生谢谢
[i for i in li if i[0] == 0]
这是 List Comprehensions
(可参考
http://www.secnetix.de/olli/Python/list_comprehensions.hawk
本来我也是不会用 现在看懂了觉得还蛮方便的 (效能不知道)
可以拆成三部份来看
[ i for i in li if i[0] ==0 ]
(0) (1) (2) (3) (0)
会跑过所有的i(在li里) (2) 并在i[0] == 0 (3) 时 把 i (1) 放入list (0)中
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.63.180
1F:推 hilorrk:我一直到学会comprehension 才知到为什麽叫"for"回圈 10/26 05:17