对enumerate对象切片
本帖最后由 FC的注册很坑 于 2020-11-4 14:40 编辑用enumerate()返回了一个enumerate object, 然后我想切片截取这个enumerate object,怎么处理比较优雅美观呢?
举个栗子,对于列表['a','b','c','d','e'],执行enumerate(['a','b','c','d','e'],start=10),得到enumerate object:[(10,'a'),(11,'b'),(12,'c'),(13,'d'),(14,'e')]
现在我想取出序号为11-13的,返回对象依旧是enumerate object:[(11,'b'),(12,'c'),(13,'d')]
当然,写个循环,如果index in 把值存在一个新列表里,在对新列表enumerate,start=11,可以实现目的。
但我觉得这样实现不够优雅,求问大佬们,有没有更优雅简短,让人眼前一亮的写法来实现这个目的呢?{:10_254:} 所以你的代码呢? 本帖最后由 笨鸟学飞 于 2020-11-4 12:31 编辑
=======试试=============
temp = enumerate(['a','b','c','d','e'],start=10)
temp2 = temp 没太明白,是这个意思吗?
>>> a = list(enumerate(['a','b','c','d','e'],start=10))
>>> a
[(11, 'b'), (12, 'c'), (13, 'd'), (14, 'e')] 本帖最后由 阿奇_o 于 2020-11-4 11:48 编辑
---我理解错了,已删,2333-- 掐头去尾取中间呗
_, *middle, _ = enumerate(['a','b','c','d','e'], start=10)
print(middle) 笨鸟学飞 发表于 2020-11-4 10:29
=======试试=============
会报错的 冬雪雪冬 发表于 2020-11-4 10:57
没太明白,是这个意思吗?
这么做类型不对了,我希望切片后的输出仍然是enumerate object,而不是形似的list altf11 发表于 2020-11-4 11:41
掐头去尾取中间呗
输出类型不对,并且我这只是举个例子,是要截取任意一段而不是取中间。
不过这个写法我第一次见,学到了{:10_275:}
页:
[1]