Max*_*Max 1 python string variable-assignment
有时我写这样的代码:
a,temp,b = s.partition('-')
Run Code Online (Sandbox Code Playgroud)
我只需要选择第一个和第三个元素.temp
永远不会被使用.有一个更好的方法吗?
换句话说,有没有更好的方法来选择不同的元素来制作新的列表?
例如,我想使用0,1,3,7
旧列表中的元素创建一个新列表.代码如下:
newlist = [oldlist[0],oldlist[1],oldlist[3],oldlist[7]]
Run Code Online (Sandbox Code Playgroud)
这很难看,不是吗?
小心使用
a, _, b = s.partition('-')
Run Code Online (Sandbox Code Playgroud)
有时_
用于国际化(gettext),所以你不想意外地覆盖它.
通常我会这样做,partition
而不是创建一个我不需要的变量
a, b = s.partition('-')[::2]
Run Code Online (Sandbox Code Playgroud)
这在一般情况下
from operator import itemgetter
ig0137 = itemgetter(0, 1, 3, 7)
newlist = ig0137(oldlist)
Run Code Online (Sandbox Code Playgroud)
如果在循环中使用itemgetter,则itemgetter比列表解析更有效
对于第一个,还有这个替代方案:
a, b = s.partition('-')[::2]
Run Code Online (Sandbox Code Playgroud)
对于后者,由于没有明确的间隔,所以没有办法做得太干净.但这可能适合您的需求:
newlist = [oldlist[k] for k in (0, 1, 3, 7)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11141 次 |
最近记录: |