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

2024-10-02 20:38:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

有什么办法吗?你知道吗


Tags: datavaluemagic数字整数airint元组
1条回答
网友
1楼 · 发布于 2024-10-02 20:38:34

使用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)

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

相关问题 更多 >