在Python中,如何迭代未知数量的列表?

2024-06-01 00:25:26 发布

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

我正在用Python2.7编写一个程序来寻找MusicXML乐谱中的某些特性。目前我正在编写查找和弦(基本上是同时弹奏的音符)所需的函数。乐谱将有不同的部分,其中音乐是写的(如低音,小提琴,女高音等),在我的程序中,每一个部分都有一个列表,这个列表包含了所有这些部分的音符及其作为字符串的时间间隔。在

这些列表存储在字典中,其中的键是它们所属部分的名称,它们本身并不是作为变量存储的,因为我不知道分数将有多少个部分。使用字典可以动态地创建键名。e、 g

scoreDict = {Bass : [A#3 1, B3 3, C4 5, ... X n], Soprano : [C#5 1, F#4 2, C#2 3, ... X n]}

在上面的例子中,音符A#3和C#5出现在同一时间间隔(1)。在

为了找到和弦,我需要遍历字典中的每个列表,找到音符的时间间隔匹配的地方,并返回这些音符的名称,以给用户弹奏的和弦。在

然而,问题是这些列表的数量是不确定的(当我动态地填充包含它们的字典时,可能会有任意数量的列表),所以我不能简单地通过写以下内容来遍历它们:

^{pr2}$

迭代未确定数量的列表的最佳方法是什么?我确实考虑过为每个列表创建一个字典,其中key是note位置,value是note,但是问题是时间间隔可能在列表中重复,从而导致重复的键。在


Tags: 函数程序名称列表数量间隔字典时间
1条回答
网友
1楼 · 发布于 2024-06-01 00:25:26

我想您的示例中缺少一个zip

for val1, val2 in zip(list1, list2):
    # ...

可以将“splat”运算符与zip一起使用

^{pr2}$

相关问题 更多 >