python - 我究竟做错了什么?它显示列表索引超出范围
问题描述
我有一个给定的列表,我想将该列表中具有奇数索引的所有元素添加到新列表中。这是我的代码:
def odd_indices(lst):
new_lst = [ lst[i] for i in lst if (i + 2) % 2 != 0 ]
return new_lst
我究竟做错了什么?
解决方案
您可能希望使用索引而不是值本身。该列表lst
包含值而不是索引。enumerate
有助于生成索引。像下面这样。
def odd_indices(lst):
new_lst = [ v for i, v in enumerate(lst) if i% 2 != 0 ]
return new_lst
print(odd_indices([1, 2, 4, 5]))
推荐阅读
- angular - Angular 4从单独的组件重新加载标题组件
- azure - Azure 表存储和触发函数
- excel - 为什么 keyDown(shift) 函数不适用于 Excel 自动化的 python pyautogui
- excel - 在列中找到一个字符串并返回并返回一个带有行号的数组
- c - 连接二进制数
- asp.net-mvc - MVC IPageList Paging 显示两个寻呼机控件
- azure - Windows 的容器组支持
- c++ - 具有嵌套依赖项的 CMake 2.8.12,导致多个“包含”
- android - 使用回收器视图在android studio中删除Xml文件中图像左侧的空间
- javascript - 从字符串 api 响应 aws lambda 中删除 '\'