python - 从列表中删除条目而不更改顺序的计算有效方法?
问题描述
我有两个连接在一起的列表。第一个存储问题,第二个存储答案。
如果我认为某个问题或答案不可接受,我想删除两者,保持顺序不变。
这是一个例子:
Questions : Answers
0 Hi how.. : 0 answer0
1 What are.. : 1 answer1
2 What is : 2 answer2
.................(The list will be VERY big)
例如,我想删除两个列表中的条目 1,同时保持顺序相同。我该怎么做?
解决方案
计算效率最高的方法是将两个列表中的值替换为None
,而不是删除项目。
这样可以避免在每次需要丢弃一个元素时重新复制要丢弃的元素右侧的所有元素。
if element is not None
然后在显示或使用列表元素之前进行一个简单的测试就足够了。
维持秩序;时间复杂度是O(1)
,并且您可以将问题和答案保持在与创建它们时相同的索引值。
或者,您可以使用{question: answer}
可以从两个列表创建zip
的字典,使用和字典理解,正如@MrT 和@Chepner 在评论中所建议的那样
推荐阅读
- python - 精灵不会在pygame中向左或向右移动
- jenkins - Jenkinsfile 中通知插件的 Groovy 表示
- javascript - 如何使用 JSDoc 记录方法所需的变量?
- python - 如何有效地从 10,000 个 Python 列表中挑选第 i 个项目并将它们高效地转换为列表?
- django - django rest api - 将用户添加到关键字模型
- python - 使用networkX向节点添加属性
- java - React Native 使用什么 Java 版本?
- powershell - Visual Studio Code 中的调试突然停止
- javascript - 事件处理程序未触发 Ajax 请求
- c# - 在 Unity 中摇动游戏对象