我有一个长度未知的列表A和一个切片对象,该对象指示此列表中的重要元素。如何获得相应的索引作为列表B? (所以,我得到slice(0, 5, 1)
而不是[0, 1, 2, 3, 4]
的意思是,即使在定义切片对象之前不知道列表的长度,对于s=slice(None, None, 20)
这样的切片,它也应该起作用。 / p>
我的解决方法是:
indices_B = list(range(len(my_list_A)))[my_slice]
它可以工作,但是我感觉必须有一种更聪明的方式,也应该更容易理解。 (使用range(len(somelist))
肯定是错误的)
答案 0 :(得分:1)
indices_B = range(*my_slice.indices(len(my_list_A)))
https://docs.python.org/3/reference/datamodel.html#slice.indices