在字典中找到最接近的匹配数字(Python)

1 投票
1 回答
1629 浏览
提问于 2025-04-17 21:22
x = 115

freq_chart = {
'C1':'65.4063913251',
'C#1':'69.2956577442',
'D1':'73.4161919794',
'D#1':'77.7817459305',
'E1':'82.4068892282',
'F1':'87.3070578583',
'F#1':'92.4986056779',
'G1':'97.9988589954',
'G#1':'103.826174395',
'A1':'110',
'A#1':'116.5409403795',
'B1':'123.470825314'
}

我需要找出在频率图中,x最接近的音符名称。在这个例子中,x最接近的是A#1。请问该怎么写代码呢?谢谢!

1 个回答

6

你可以使用 min 函数:

>>> min(freq_chart, key=lambda y:abs(float(freq_chart[y])-x))
'A#1'

撰写回答