我可以编写一个函数来执行此操作,但我想知道是否有一些内置或常用的方法来重新排序列表,以便元素保持相同的顺序,但具有不同的顺序起点。
>> l = ["a", "b", "c", "d", "f"]
>> l.start_from("c")
["c", "d", "f", "a", "b"]
我的具体用例与音乐有关。 (大写字母是注释对象,但不要太担心。)
c_major_scale = [C, D, E, F, G, A, B, C]
a_minor_scale = c_major_scale.start_from(A)
d_dorian_scale = c_major_scale_start_from(D)
等