python-3.x - Python:如何在每次迭代中返回列表的所有元素,当前元素除外
问题描述
我的目标是遍历列表并返回列表中的每个元素,每次迭代的当前索引除外。
例如:
my_list = [1,2,3]
应该返回:
>>>[2,3]
>>>[1,3]
>>>[1,2]
我尝试创建一个 for 循环来创建列表的副本,从副本中弹出当前索引并返回它。
my_list = [1,2,3]
for a in my_list:
the_index = my_list.index(a)
print(my_list.copy().pop(the_index))
返回
>>>1
>>>2
>>>3
关于如何正确实施这一点的任何想法?
解决方案
以下看起来相当简单:
lst = [1,2,3]
[lst[:i] + lst[i+1:] for i in range(len(lst))]
# [[2, 3], [1, 3], [1, 2]]
或用于循环打印:
for i in range(len(lst)):
print(lst[:i] + lst[i+1:])
# [2, 3]
# [1, 3]
# [1, 2]
推荐阅读
- bash - 在bash中跨多行匹配正则表达式
- javascript - 如何修复 Gatsby 开发错误:找不到模块 'gatsby-cli/lib/reporter'?
- linux - 如何从命令行为 dot/graphviz 添加节点/边属性?
- java - 从java中的JSONObject中删除特殊字符
- python - 对作为列表导入的 csv 文件行的早期引用会破坏我的读取数据集?
- java - 将数据插入 JList 而不删除另一个
- syntax - 使用 casetovars 重组时消失的变量
- javascript - 如何打破 webpack 钩子中的循环
- pdf - 如何在 ps 或 pdf 转换中将终端颜色代码视为颜色?
- rest - 您是否应该更改 API 端点中的参考数据