繁体   English   中英

Python:使用2元组列表定义函数的最快方法

[英]Python: fastest way to define a function using a list of 2-tuples

假设L是两个元组的列表,其中len(L)~16,000

L的元素形式为(x,y),在我的情况下,x本身是7个元素的列表,而y是浮点数。

如何定义函数f,使其使用L计算f(x)= y? 现在我正在使用朴素的代码:

def f(x):  
    for i in range(0,len(L)):
        if x==L[i][0]:
           return L[i][1] 

但这花费的时间太长了。 有什么建议可以加快运行速度吗?

tabulate = dict(L)
f = tabulate.get

只要您将元组用作键而不是列表,这将起作用。

您要实现的称为关联列表,例如:

L = [ ('x', 1), ('y', 2), ('z', 3) ]

在Python中使用更好的数据结构是字典:

D = { 'x':1, 'y':2, 'z':3 }

看,您甚至可以将关联列表转换成字典:

D = dict(L)

现在,您可以从中快速检索任何值:

D['y']
=> 2

尝试使用字典,即可以用于查找的键值对列表,这对您的“功能”非常理想

这是python dict数据类型的概述:

http://www.tutorialspoint.com/python/python_dictionary.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM