Ant*_*ony 5 python idioms slice
我经常发现自己必须处理序列中的最后n个项目,其中n可能为0.问题是尝试切片时[-n:]将不起作用n == 0,因此需要笨拙的特殊情况代码.例如
if len(b):
assert(isAssignableSeq(env, self.stack[-len(b):], b))
newstack = self.stack[:-len(b)] + a
else: #special code required if len=0 since slice[-0:] doesn't do what we want
newstack = self.stack + a
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 有没有办法在不需要笨拙的特殊套管的情况下获得这种行为?如果我不必一直检查0,代码会简单得多.
Ign*_*ams 12
只是使用or合并行为.
>>> print 4 or None
4
>>> print -3 or None
-3
>>> print -0 or None
None
Run Code Online (Sandbox Code Playgroud)
jam*_*lak 11
您可以将其切换L[-2:]为L[len(L)-2:]
>>> L = [1,2,3,4,5]
>>> L[len(L)-2:]
[4, 5]
>>> L[len(L)-0:]
[]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |