用于大量变量命名的迭代循环

2024-06-13 17:05:31 发布

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

我想在音乐数据库中生成一些音符,但我不知道如何使用像for循环这样的迭代来简化以下内容,我希望有人能对我有所启发

note1 = note.Note(tune_array_bass[0])
note2 =note.Note(tune_array_bass[1])
note3 =note.Note(tune_array_bass[2]) 
note4 =note.Note(tune_array_bass[3])
note5 =note.Note(tune_array_bass[4])
note6 =note.Note(tune_array_bass[5])
note7 =note.Note(tune_array_bass[6])
note8 =note.Note(tune_array_bass[7]) 
note9 =note.Note(tune_array_bass[8])
note10 =note.Note(tune_array_bass[9])
note11 =note.Note(tune_array_bass[10])
note12 =note.Note(tune_array_bass[11])
note13 =note.Note(tune_array_bass[12])
note14 =note.Note(tune_array_bass[13])

Tags: 数据库for音乐arraynote音符tunebass
6条回答

您可以将对象存储在列表中:

notes = []
for i in range(14):
    notes.append(note.Note(tune_array_bass[i]))

然后可以使用notes[0], notes[1] etc.访问每个note对象

不要像这样创建许多单独的变量。 相反,您可以使用以下列表:

notes = [note.Note(tune_array_bass[i]) for i in range(14)]

# get a note from the list:
notes[0]

或字典:

notes = {f"Note{i+1}":note.Note(tune_array_bass[i]) for i in range(14)}

# get a note from the dict:
notes["Note1"]

我不太明白你的意思,但是,下面是我使用循环列出注释的解决方案:

class Note:
    def __init__(self,note):
        self.note = note

tune_array_bass = [1,2,3,4,5,6,7,8,9,10,11,12,13]
for item in tune_array_bass:
    new_notes = Note(item)
    print(new_notes)

相关问题 更多 >