python - 从字符串和整数的元组中,获取元组内最接近给定值的数字

标签 python python-3.x sorting integer tuples

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

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

有什么办法吗?

最佳答案

使用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,因为这些值已经都是 int。

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

(*有一些异常(exception);参见 https://www.python.org/dev/peps/pep-0008/#naming-conventions )

关于python - 从字符串和整数的元组中,获取元组内最接近给定值的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47944137/

相关文章:

python - 从父类访问命名元组中的派生属性

C# 排序 JSON 字符串键

python - 从 csv 文件 python 解析字典

python - 从多个线程调用 NumPy 的 C API 函数有什么含义?

python - 线性回归预测值错误 : "ValueError: shapes (1,1) and (132,132) not aligned: 1 (dim 1) != 132 (dim 0)"

python - 来自 LeetCode 给定一个整数数组,返回两个数字的索引,使它们加起来等于一个特定的目标

java - 无法在 OpenCms 中按升序或降序对列表集合进行排序

python - 在列中添加值

python - 将 neo4django 与 apache 一起使用

python - 有没有办法扩大Python中的GUI框?