Python 怎么筛选list中特定位置的数据

XSEL 2018-04-17 12:24:49
a = [0,1,2,3,4,5,6,7,8,9]
比如这个列表中我想只留下[0,4,8]
每隔四个,有什么办法
...全文
3478 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
XSEL 2018-04-17
  • 打赏
  • 举报
回复
引用 2 楼 xpresslink 的回复:
[quote=引用 1 楼 seakingx 的回复:]
a = [0,1,2,3,4,5,6,7,8,9]
b = filter(lambda x:x%4==0,a  )
这种效果?
参考一下

>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> a[::4]
[0, 4, 8]
[/quote] 感谢!那有没有办法显示[0,1,4,5,8,9]??
陈年椰子 2018-04-17
  • 打赏
  • 举报
回复
鳄鱼大神的方法好!
混沌鳄鱼 2018-04-17
  • 打赏
  • 举报
回复
引用 1 楼 seakingx 的回复:
a = [0,1,2,3,4,5,6,7,8,9]
b = filter(lambda x:x%4==0,a  )
这种效果?
参考一下

>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> a[::4]
[0, 4, 8]
陈年椰子 2018-04-17
  • 打赏
  • 举报
回复
a = [0,1,2,3,4,5,6,7,8,9]
b = filter(lambda x:x%4==0,a  )
这种效果?
混沌鳄鱼 2018-04-17
  • 打赏
  • 举报
回复
方法挺多的,我随便写两个

>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> from functools import reduce
>>> reduce(lambda x,y: x + a[y:y+2], range(0,len(a), 4),[])
[0, 1, 4, 5, 8, 9]
>>> from itertools import chain
>>> list(chain(*zip(a[::4],a[1::4])))
[0, 1, 4, 5, 8, 9]
当然了,要写的hacker一些可以这样

>>> sum([a[i:i+2] for i in range(0,len(a), 4)],[])
[0, 1, 4, 5, 8, 9]
>>> 

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧