假设我有一个list = [(key1,value1), (key2,value2)]
形式的元组列表,那么如果列表中存在这样的元组,那么查找它是否快速/好:(key_x,value_x) in list
?另外python如何搜索列表?!它是否比较指针或如何?!我是Java的新手。
答案 0 :(得分:2)
item in your_list
是Python中的O(n)
操作。如果所有项目都不同且订单无关紧要且您需要进行多次查找,那么您可以使用set()
而不是列表。 item in your_set
为O(1)
(O(n)
最糟糕的情况)。
答案 1 :(得分:1)
列表的内容是什么并不重要。列表中的查找是O(n)
。从第一个开始的每个项目都会与找到的任何项目进行比较,直到找到它为止。
item in l # l is a list
相当于
for i in l:
if i == item:
return True
return False