首页 > 解决方案 > 从列表中删除条目而不更改顺序的计算有效方法?

问题描述

我有两个连接在一起的列表。第一个存储问题,第二个存储答案。

如果我认为某个问题或答案不可接受,我想删除两者,保持顺序不变。

这是一个例子:

Questions    : Answers
0 Hi how..   : 0 answer0
1 What are.. : 1 answer1
2 What is    : 2 answer2
.................(The list will be VERY big)

例如,我想删除两个列表中的条目 1,同时保持顺序相同。我该怎么做?

标签: pythonlist

解决方案


计算效率最高的方法是将两个列表中的值替换为None,而不是删除项目。
这样可以避免在每次需要丢弃一个元素时重新复制要丢弃的元素右侧的所有元素。

if element is not None然后在显示或使用列表元素之前进行一个简单的测试就足够了。

维持秩序;时间复杂度是O(1),并且您可以将问题和答案保持在与创建它们时相同的索引值。

或者,您可以使用{question: answer}可以从两个列表创建zip的字典,使用和字典理解,正如@MrT 和@Chepner 在评论中所建议的那样


推荐阅读