gpt4 book ai didi

Python-获取按乐谱排序的最接近的整数值

转载 作者:行者123 更新时间:2023-12-01 02:41:57 25 4
gpt4 key购买 nike

给定一个整数列表

values = [7, 9, 10, 11]

如果我想找到最接近的值

value = 0

我可以简单地使用

closest_value = min(values, key=lambda x:abs(x-value))

并得到

[out]: 7

但是,在我的例子中,对应于乐谱的整数,如下所示:

notation_values = {'C':0, 'C#':1, 'D':2, 'Eb':3, 'E':4, 'F':5, 'F#':6, 'G':7, 'Ab':8, 'A':9, 'Bb':10, 'B':11}

在这种情况下,0 更接近 11,因为 12 又会是 'C' ,仅高一个 Octave 。

如何根据此逻辑获得最接近value的整数?

最佳答案

听起来您想要小于小于您的索引的最接近值。 IE:最接近 1 的值是 0,最接近 0 的值是 11,依此类推(基于您的范围 [0-11])。

试试这个:

closest_value = (value - 1) % 12

您应该能够使用结果作为 notation_values 的索引,以便确定相应的音符。

关于Python-获取按乐谱排序的最接近的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com