Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在不改变顺序的情况下从列表中删除条目的计算效率高的方法?_Python_List - Fatal编程技术网

Python 在不改变顺序的情况下从列表中删除条目的计算效率高的方法?

Python 在不改变顺序的情况下从列表中删除条目的计算效率高的方法?,python,list,Python,List,我有两个连接在一起的列表。第一个存储问题,第二个存储答案 如果我认为某个问题或答案不可接受,我希望删除这两个问题或答案,保持顺序不变 这是一个例子: Questions : Answers 0 Hi how.. : 0 answer0 1 What are.. : 1 answer1 2 What is : 2 answer2 .................(The list will be VERY big) 例如,我想删除两个列表中的条目1,同时保持顺序不变。如何执行此

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

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

这是一个例子:

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元素不是None
测试就足够了

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


或者,您可以使用字典
{question:answer}
,该字典可以从两个列表中创建,使用
zip
和字典理解,如@MrT所建议,注释中的@Chepner

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

然后,在显示或使用列表中的元素之前,进行一次简单的
if元素不是None
测试就足够了

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


或者,您可以使用字典
{question:answer}
,该字典可以从两个列表中创建,使用
zip
和字典理解,如@MrT所建议,和注释中的@Chepner

要用
解析列表中的条目
那么我只需要检查条目是否
正确?要用
解析列表中的条目
那么我只需要检查条目是否
正确?字典不是更好吗比保留两个可能同步或可能不同步的列表更有意义?而且,可以使用
d(zip(问题,答案))
(在Python 3.7之前,您可能希望使用
OrderedDict
,以便可以按原始顺序迭代问题(键)或,如果您不需要实际的映射,只需使用从
zip(问题,答案)
获得的单个对列表将它们保持在一起。对于这一目的,字典不是比保留两个可能同步或可能不同步的列表更好吗?而且,使用
d(问题,答案))可以轻松创建这样的字典
(在Python 3.7之前,您可能希望使用
OrderedDict
,以便可以按原始顺序迭代问题(键)。或者,如果您不需要实际映射,只需使用从
zip(问题,答案)
获得的单个对列表,将它们保持在一起。