缩短列表

Rya*_*les 2 python list

我有一个简单的问题,我似乎无法找到答案.我有一个listpython我想基于在最后的值,以更短.例如,我说我list = [0,0,1,2,1,2,2,2,0,1,1,0]想要删除列表末尾或开头的任何0,这样就可以转换为list = [1,2,1,2,2,2,0,1,1].我尝试使用filter()但是当我只是想删除目的时,这是删除0的所有实例.我是python的新手,似乎无法解决这个问题.任何帮助,将不胜感激!

Ada*_*ers 6

while list[0] == 0:
   list.pop(0)
while list[-1] == 0:
   list.pop()
Run Code Online (Sandbox Code Playgroud)

但最好不要使用名为的变量,list因为它会覆盖内置list类型.

  • 第一个循环虽然很慢(如果开头有几个零).如有必要,可以对其进行优化:计算前导零,然后计算`del list [:clz]` (4认同)
  • @delnan或`l = list(itertools.dropwhile(lambda x:x == 0,l))`. (2认同)