有时我写这样的代码:

a,temp,b = s.partition('-')


我只需要选择第一个和第三个元素。 temp永远不会使用。有一个更好的方法吗?

换句话说,是否有更好的方法来选择不同的元素以创建新列表?

例如,我想使用旧列表中的元素0,1,3,7创建新列表。的
代码是这样的:

newlist = [oldlist[0],oldlist[1],oldlist[3],oldlist[7]]


这很丑陋,不是吗?

最佳答案

您可以使用Python的扩展切片功能来定期访问列表:

>>> a = range(10)
>>> # Pick every other element in a starting from a[1]
>>> b = a[1::2]
>>> print b
>>> [1, 3, 5, 7, 9]


负索引工作符合您的预期:

>>> c = a[-1::-2]
>>> print c
>>> [9, 7, 5, 3, 1]


对你来说

>>> a, b = s.partition('-')[::2]

10-07 17:20