相关疑难解决方法(0)

了解切片表示法

我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).

对我来说,这种符号需要一点点提升.

它看起来非常强大,但我还没有完全了解它.

python iterable list slice

3024
推荐指数
33
解决办法
159万
查看次数

如何用切片符号a [:: - 1]来解释序列的反转

来自python.org教程

切片索引具有有用的默认值; 省略的第一个索引默认为零,省略的第二个索引默认为要切片的字符串的大小.

>>> a = "hello"
>>> print(a[::-1])
olleh
Run Code Online (Sandbox Code Playgroud)

正如教程所说a[::-1]应该等于a[0:5:-1]

但是a[0:5:-1]如下所示是空的:

>>> print(len(a[0:5:-1]))
0
Run Code Online (Sandbox Code Playgroud)

问题不是解释切片符号的重复.那个问题是关于python中切片的一般用法.

python string slice

30
推荐指数
1
解决办法
2193
查看次数

扩展切片语法实际上对负步骤有什么作用?

python中的扩展切片语法已经向我解释为" a[n:m:k] returns every kth element from n to m".

这让我很清楚当k为正时会发生什么.但是我对如何解释a[n:m:k]负面k 感到迷茫.我知道这会a[::-1]颠倒一个,并且这a[::-k]需要反转a的第k个元素.

但这是对k正定义的概括呢?我想知道a[n:m:k]实际上是如何定义的,所以(例如)我可以理解为什么:

"abcd"[-1:0:-1] = "dcb"
Run Code Online (Sandbox Code Playgroud)

是否正在a[n:m:-k]逆转序列a,然后从m开始,在m之前从一个原始索引开始,然后结束一个?我不这么认为,因为这种模式不适合我尝试过的其他n和m值.但我无法弄清楚这是如何实际定义的,搜索让我无处可去.

python list syntactic-sugar slice

18
推荐指数
2
解决办法
1万
查看次数

(i:j:k)numpy切片中j的默认值是多少?

我一直在阅读scumpy.org上的numpy i:j:k切片教程.在第二个例子后,它说

假设n是要切片的维度中的元素数.然后,如果没有给出其默认值为0 K> 0N - 1ķ<0 .如果没有给出j,则对于k> 0,默认为n ; 对于k <0,默认为-1.如果没有给出k,则默认为1.

然而:

>>> import numpy as np
>>> x = np.array([0,1,2,3,4])
>>> x[::-1]
array([4, 3, 2, 1, 0])
Run Code Online (Sandbox Code Playgroud)

如果j默认为-1,那么x[:-1:-1]应该相当于x[::-1],但是

>>> x[:-1:-1]
array([], dtype=int64)
>>> x[:-(len(x)+1):-1]
array([4, 3, 2, 1, 0])
Run Code Online (Sandbox Code Playgroud)

>>> x[:-(len(x)+1):-1]
array([4, 3, 2, 1, 0])
Run Code Online (Sandbox Code Playgroud)

因此当 …

python numpy slice

6
推荐指数
1
解决办法
214
查看次数

标签 统计

python ×4

slice ×4

list ×2

iterable ×1

numpy ×1

string ×1

syntactic-sugar ×1