gpt4 book ai didi

python - 用切片对象替换列表的第 i 个元素

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:14 27 4
gpt4 key购买 nike

这是一个非常简单的问题,但我无法在任何地方找到它的文档。我想将列表的第 i 元素更改为切片(“文字冒号”,如 [:] 中)。有什么办法吗?

我试过这样做:

indexlist = [0] * dim
indexlist[i] = :

这会抛出一个语法错误,但我认为它明白了我想做的事情。

最佳答案

“文字冒号”似乎是指 slice object .

例如:

your_list[i] = slice(None)

为了解释发生了什么,切片表达式实际上作为切片对象(或整数等)的元组传递。

something[start:stop:step] 等价于something[slice(start, stop, step)]。同样,something[:] 等同于 something[slice(None)]

切片是通过对象的__getitem__ method实现的, 所以这也等同于 something.__getitem__(slice(start, stop, step))


因为你在评论中提到了 numpy,你可能会看看 np.index_exp or np.s_ .它可以让您通过索引快速创建切片元组,并让您看到发生了什么。

例如:

import numpy as np

print np.s_[:, 1:5, ::-1, ...]

产量:

(slice(None, None, None), slice(1, 5, None), slice(None, None, -1), Ellipsis)

这是一个切片对象的元组,您可以存储这些切片对象,然后直接用于切片对象。 (例如 slices = np.s_[0, :, :] 然后是 y = x[slices])。

关于python - 用切片对象替换列表的第 i 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com