【问题标题】:from tuples of string and integer, get number closest inside the tuple to a given value从字符串和整数的元组中,获取元组内最接近给定值的数字
【发布时间】:2018-06-05 06:18:27
【问题描述】:

给定一个带有整数的元组内的元组,我想找出元组内的哪个数字与我在输入中给出的数字最接近:

Data = (('Batik Air',int(561)),('Citilink',int(620)),('Garuda Indonesia',int(1501))
Value=500
findClosest(Data,Value)
# magic
('Batik Air',561)

有什么办法吗?

【问题讨论】:

    标签: python python-3.x sorting integer tuples


    【解决方案1】:

    使用min 查找差异最小的元组:

    >>> Data = (('Batik Air',int(561)),('Citilink',int(620)),('Garuda Indonesia',int(1501)))
    >>> Value = 500
    >>> min(Data, key=lambda t: abs(t[1]-Value))
    ('Batik Air', 561)
    

    其他样式提示:使用小写字母作为变量名更惯用*,您无需调用 int,因为这些值已经是整数。

    >>> data = (('Batik Air',561),('Citilink',620),('Garuda Indonesia',1501))
    >>> value = 500
    >>> min(data, key=lambda t: abs(t[1]-value))
    ('Batik Air', 561)
    

    (*有一些例外;见https://www.python.org/dev/peps/pep-0008/#naming-conventions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 2012-10-30
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多