相关疑难解决方法(0)

了解切片表示法

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

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

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

python iterable list slice

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

使用切片表示法反转列表

在以下示例中:

foo = ['red', 'white', 'blue', 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

其中:foo[0:6:1]将打印foo中的所有元素.但是,foo[6:0:-1]将省略第1或第0个元素.

>>> foo[6:0:-1]
[3, 2, 1, 'blue', 'white']
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用foo.reverse()或foo [:: - 1]反向打印列表,但我试图理解为什么foo [6:0:-1]不打印整个列表?

python syntax list slice

62
推荐指数
5
解决办法
5万
查看次数

Python反向跨越切片

我的问题的一个具体例子是,"在这个例子中我如何得到'3210'?"


>>> foo = '0123456'
>>> foo[0:4]
'0123'
>>> foo[::-1]
'6543210'
>>> foo[4:0:-1] # I was shooting for '3210' but made a fencepost error, that's fine, but...
'4321'
>>> foo[3:-1:-1] # How can I get '3210'?
''
>>> foo[3:0:-1]
'321'
Run Code Online (Sandbox Code Playgroud)

看起来很奇怪,我可以写foo [4:0:-1],foo [5:1:-1]等等,并得到我所期望的,但是没有办法写切片让我得到'3210 ".

这样做的临时方法是foo [0:4] [:: - 1],但这会在进程中创建两个字符串对象.我将在数十亿次执行此操作,因此每个字符串操作都很昂贵.

我一定要错过愚蠢和容易的事情.谢谢你的帮助!

python string slice

30
推荐指数
4
解决办法
3万
查看次数

在for循环中向后索引整个数组

假设我想循环遍历数组并在循环索引中向前和向后索引所有索引,如下所示:

x = np.random.uniform(size=600)
for i in range(len(x)):
    dot = np.dot(x[:-i], x[i:])
Run Code Online (Sandbox Code Playgroud)

现在这不起作用,因为x[:-0]就像x[:0]它给出的那样[].我可以单独处理零情况但是想知道是否有更多的pythonic方式来做这件事.

python numpy

5
推荐指数
1
解决办法
85
查看次数

使用NumPy反转数组的一部分

我试图用数组切片以逆转的一部分,NumPy的阵列.例如,如果我的数组是

a = np.array([1,2,3,4,5,6])
Run Code Online (Sandbox Code Playgroud)

然后我可以得到一个切片b

b = a[::-1]
Run Code Online (Sandbox Code Playgroud)

这是原始数组的视图.我想要的是一个部分逆转的观点,例如

1,4,3,2,5,6
Run Code Online (Sandbox Code Playgroud)

我所遇到的性能问题NumPy的,如果你不准确以及它是如何设计的发挥,所以我想避免"花哨"的索引,如果它是可能的.

python numpy

3
推荐指数
2
解决办法
1576
查看次数

标签 统计

python ×5

slice ×3

list ×2

numpy ×2

iterable ×1

string ×1

syntax ×1