l是一个我想要探索的列表,以便压制一些项目.该函数do.i.want.to.suppres.i返回TRUE或FALSE以告诉我是否需要抑制.此功能的详细信息并不重要.
我试过这个:
l = [1,4,2,3,5,3,5,2]
for i in l:
if do.i.want.to.suppress.i(i):
del i
print l
Run Code Online (Sandbox Code Playgroud)
但l不会改变!所以我试过了
l = [1,4,2,3,5,3,5,2]
for position,i in enumerate(l):
if do.i.want.to.suppress.i(i):
del l[position]
Run Code Online (Sandbox Code Playgroud)
但问题是,位置不匹配的对象i为l在循环过程中得到修改.
我可以这样做:
l = [1,4,2,3,5,3,5,2]
for position,i in enumerate(l):
if do.i.want.to.suppress.i(i):
l[position] = 'bulls'
l = [x for x in l if x!='bulls']
Run Code Online (Sandbox Code Playgroud)
但我想应该有一个更聪明的解决方案.你是否有一个?
l = [item for item in my_list if not do_I_suppress(item)]
Run Code Online (Sandbox Code Playgroud)
列表理解!学习它们!爱他们!住他们!
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |