温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Is there a smarter way for getting the indices of a list sliced with a sliced object?
indexing list python range slice

python - 是否有一种更聪明的方法来获取使用切片对象切片的列表索引?

发布于 2020-03-31 23:47:10

我有一个长度未知的列表A和一个切片对象,该对象指示此列表中的重要元素。如何获得相应的索引作为列表B?(因此,而不是例如slice(0, 5, 1)得到[0, 1, 2, 3, 4]),即使我在定义slice对象之前不知道列表的长度,对于像这样的slice也应如此s=slice(None, None, 20)

我的解决方案如下:

indices_B = list(range(len(my_list_A)))[my_slice]

它有效,但是我感觉必须有一种更聪明的方式,也应该更容易理解。(使用range(len(somelist))感觉肯定是错误的)

查看更多

提问者
jonka
被浏览
72
Masklinn 2020-01-31 22:52
indices_B = range(*my_slice.indices(len(my_list_A)))

https://docs.python.org/3/reference/datamodel.html#slice.indices