如何同时获取元组的第一个和最后一个元素

Mis*_*cht 9 python indexing tuples slice

我需要获得任意大小的numpy.ndarray的第一个和最后一个维度.

如果我有shape(A) = (3,4,4,4,4,4,4,3) 我的第一个想法会做result = shape(A)[0,-1]但但这似乎不适用于元组,为什么不呢?

有没有比这更简洁的方式

s=shape(A)
result=(s[0], s[-1])
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Sve*_*ach 19

我不知道有什么不对

(s[0], s[-1])
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用operator.itemgetter():

from operator import itemgetter
itemgetter(0, -1)(s)
Run Code Online (Sandbox Code Playgroud)

不过,我认为这不会更好.(如果不计算实例化itemgetter实例所需的时间,可能会稍快一些,如果经常需要这个操作,可以重复使用.)


kev*_*kev 6

s = (3,4,4,4,4,4,4,3)
result = s[0], s[-1]
Run Code Online (Sandbox Code Playgroud)


小智 5

这么晚才遇到;但是,只是添加前面提到的非索引方法。

元组解包可以很容易地应用于获取第一个和最后一个元素。注意:下面的代码使用特殊的星号“*”语法,它返回中间部分的列表,其中 a 和 c 存储第一个和最后一个值。

前任。

A= (3,4,4,4,4,4,4,3)
a, *b, c = A
print((a, c))
Run Code Online (Sandbox Code Playgroud)

输出 (3, 3)