我想使用元组列表创建一个函数,从第一个元素到第二个元素,
+-----------------------+--------+----------+
| PurchaseOrderDetailID | ItemID | Quantity |
+-----------------------+--------+----------+
| 1 | Item1 | 5 |
| 2 | Item1 | 10 |
+-----------------------+--------+----------+
我想要以下结果:
Tuplelist = [(1, 17), (2, 13), (3, 17), (4, 4), (5, 12), (6, 10), (7, 20), (18, 36), (22, 12), (23, 39)]
看起来很简单,但我无法在网上找到相关问题。 提前谢谢!
答案 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
答案 1 :(得分: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