Led*_*Led 4 python tuples list
假设我有一个元组列表:
tuple_library = [('a', 'z', '1'), ('r', '3', 'b'), ('m', '1', 'l')]
Run Code Online (Sandbox Code Playgroud)
我想要做的是检查 tuple_library 中是否存在以下元组。
search_list = [('a','a','1'), ('m', '1', 'l')]
def search_the_tupple(t_lib, s_list):
for item in t_lib:
if item in s_list:
return(item)
print(search_the_tupple(tuple_library, search_list))
Run Code Online (Sandbox Code Playgroud)
如果 tuple_library 和 search_list 很小,则此代码可以正常工作,但是随着这两个项目的增加,完成它所需的时间也会更长。
我们如何解决这个问题?
小智 9
tuple_library并转换search_list为 python 集set()tuple_library和search_listtuple_library = [('a', 'z', '1'), ('r', '3', 'b'), ('m', '1', 'l')]
search_list = [('a','a','1'), ('m', '1', 'l')]
def search_the_tupple(t_lib, s_list):
return set(t_lib).intersection(set(s_list))
print(search_the_tupple(tuple_library, search_list))
Run Code Online (Sandbox Code Playgroud)
这是假设您希望保留元组的顺序。(这样 a('m', '1', 'l')会出现但 a('m', 'l', '1')不会出现。
仅供参考:无论您是这样做t_lib.intersection(s_list)还是反之,都没有关系。