【问题标题】:How to make function from a list of tuples in Python?如何从 Python 中的元组列表中创建函数?
【发布时间】:2016-08-01 06:36:22
【问题描述】:

我想使用元组列表创建一个函数,从第一个元素到第二个元素,

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
...

看起来很简单,但我在网上找不到相关问题。 提前致谢!

【问题讨论】:

  • 不清楚你在问什么。会不会是你需要一些简单的东西,比如字典?
  • 是的,这只需要一本字典...

标签: python function tuples


【解决方案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

【讨论】:

    【解决方案2】:

    如果这就是您要处理的所有值结果,那么您需要 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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2015-11-27
      • 2020-07-25
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 2011-11-10
      相关资源
      最近更新 更多