2016-08-01 72 views
-4

我想使使用元组列表的功能,从第一个元素到第二元件,如何从Python中的元组列表中创建函数?

Tuplelist = [(1, 17), (2, 13), (3, 17), (4, 4), (5, 12), (6, 10), (7, 20), (18, 36), (22, 12), (23, 39)] 

我想以下结果:

func(1)=17 
func(2)=13 
func(3)=17 
func(4)=4 
... 

这似乎很容易,但我无法在网上找到相关问题。 在此先感谢!

+0

http://stackoverflow.com/help/mcve – Abhineet

+0

目前还不清楚是什么你”再问。难道你需要像字典这样简单的东西吗? – Matthias

+0

是的,这只需要一本字典... –

回答

1
def func(item): 
    return dict(Tuplelist)[item] 

或更好,如果你不想创建字典每次调用函数时,

dictTuplelist = dict(Tuplelist) 
def func(item): 
    return dictTuplelist[item] 

print func(1), func(2), func(3) 
# 17 13 17 
0

如果这是所有你要处理的值,结果,那么dictionary是你所需要的

>>> Tuplelist = [(1, 17), (2, 13), (3, 17), (4, 4), (5, 12), (6, 10), (7, 20), (18, 36), (22, 12), (23, 39)] 
>>> my_map = dict(Tuplelist) 
>>> my_map[1] 
17 
>>> my_map[5] 
12 
>>> my_map[23] 
39 

,如果你想它的功能是一种简单

def my_fun(key): 
    return dict(Tuplelist)[key] 

或类似

def my_fun(key): 
    Tuplelist = dict([(1, 17), (2, 13), (3, 17), (4, 4), (5, 12), (6, 10), (7, 20), (18, 36), (22, 12), (23, 39)]) 
    return Tuplelist[key] 

MyValues = dict([(1, 17), (2, 13), (3, 17), (4, 4), (5, 12), (6, 10), (7, 20), (18, 36), (22, 12), (23, 39)]) 

def my_fun(key): 
    return MyValues[key] 

反正其他一些变化,如果这是你所需要的,我会使用词典直接,而这使得做同样更功能限制的方式。

你也可以做在列表的简单线性搜索,但失去的速度字典报价

Tuplelist = [(1, 17), (2, 13), (3, 17), (4, 4), (5, 12), (6, 10), (7, 20), (18, 36), (22, 12), (23, 39)] 

def my_func(key): 
    for k,v in Tuplelist: 
     if k == key: 
      return v