Python 从标签列表中获取项目x(数据中)标签的快速方法

Python 从标签列表中获取项目x(数据中)标签的快速方法,python,list,Python,List,我有一个包含n个列表的列表数据,另一个包含n个元素的列表标签对应于数据中元素的标签。从数据中获取某个元素x的标签的最快方法是什么def getLabel(x):… 比仅仅这样做更快的方法:标签[DATA.index(x)] 在此处使用dict,将数据中的项作为键,将标签中的相应项作为值 DICT提供了O(1)查找,而在列表中搜索是一个O(N)操作 >>> DATA = [ [2,5,8], [2,4,3], [5,5,7], [9,8,4] ] >>> LAB

我有一个包含n个列表的列表数据,另一个包含n个元素的列表标签对应于数据中元素的标签。从数据中获取某个元素x的标签的最快方法是什么<代码>def getLabel(x):…

比仅仅这样做更快的方法:
标签[DATA.index(x)]


在此处使用dict,将
数据中的项作为键,将
标签中的相应项作为值

DICT提供了
O(1)
查找,而在列表中搜索是一个O(N)操作

>>> DATA = [ [2,5,8], [2,4,3], [5,5,7], [9,8,4] ]
>>> LABELS = [ "AAA", "BBB", "AAA", "CCC" ]
>>> get_labels = {tuple(x):y for x,y in zip(DATA,LABELS)} 
>>> get_labels[5,5,7]
'AAA'
>>> get_labels[9,8,4]
'CCC'

在此处使用dict,将
数据中的项作为键,将
标签中的相应项作为值

DICT提供了
O(1)
查找,而在列表中搜索是一个O(N)操作

>>> DATA = [ [2,5,8], [2,4,3], [5,5,7], [9,8,4] ]
>>> LABELS = [ "AAA", "BBB", "AAA", "CCC" ]
>>> get_labels = {tuple(x):y for x,y in zip(DATA,LABELS)} 
>>> get_labels[5,5,7]
'AAA'
>>> get_labels[9,8,4]
'CCC'

取决于<代码>数据< /代码>和<代码>标签>代码>,发布一些示例数据和预期输出。@ AsWiWiChandHuaRy。可以考虑使用另一个数据结构吗?或者你不能改变它?取决于<代码>数据< /代码>和<代码>标签>代码>,发布一些示例数据和预期输出。@ AsWiWiChandHuaRy。可以考虑使用另一个数据结构吗?或者你不能改变它?这比标签[DATA.index(x)]快吗?@shn是的,list.index是一个
O(N)
操作,而dicts只执行
O(1)
。这取决于你查询标签的频率。如果您多次这样做,那么构建dict是值得的。如果您只做一次,您的方法会更好。@AshwiniChaudhary它不是“获取标签[[5,5,7]”,更一般地说:获取标签[x]?@shn我们不能将列表用作字典中的键,所以我将它们转换为元组
get_labels[5,5,7]
实际上相当于
get_labels[(5,5,7)]
,这比labels[DATA.index(x)]快吗?@shn是的,list.index是一个
O(N)
操作,而dicts只执行
O(1)
。这取决于查询标签的频率。如果您多次这样做,那么构建dict是值得的。如果您只做一次,您的方法会更好。@AshwiniChaudhary它不是“获取标签[[5,5,7]”,更一般地说:获取标签[x]?@shn我们不能将列表用作字典中的键,所以我将它们转换为元组<代码>获取标签[5,5,7]
实际上相当于
获取标签[(5,5,7)]