gpt4 book ai didi

python - 在 Python 中一起分配两个列表的索引

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:39 25 4
gpt4 key购买 nike

我创建了两个列表。其中一个是音符的名称,另一个是音符的频率。

简而言之,是这样的:

note_name = ['A1','B1','C1']

note_freq = [55, 61.74, 32.70]

我想做的是将这两个列表索引一起分配,这样当我键入列表 note_name 的元素时,它会打印列表 note_freq< 对应索引的值。简而言之,我想像变量一样使用 note_name 的元素。例如,如果我在程序中键入 A1,我想要打印值 55,或者如果我键入 C1,我想要要打印的值 32.70

我试过类似的方法,但没有用。它给了我 KeyError : 1

note_name = ['A1','B1','C1']
note_freq = [55, 61.74, 32.70]

for i in range (0,3):
globals() [note_name[i]] = globals() [note_freq[i]]

还有其他方法吗?

最佳答案

将它们变成一个dict:

note_lookup = dict(zip(note_name, note_freq))

然后 note_lookup['A1'] 得到 55note_lookup['B2'] 得到 61.74

当然,如果您不需要单独的 list,您可以直接定义 dict 并节省一些工作:

note_lookup = {'A1': 55, 'B1': 61.74, 'C1': 32.70}

与尝试通过名称填充全局变量相比,这是一个更好的选择;避免不必要的全局命名空间污染,并阻止讨厌的 eval(和 Py2 中的等效,input)黑客攻击。只需在 Py2 上使用 raw_input(在 Py3 上使用 input)即可避免 eval,并使用它返回的内容作为 note_lookup< 的键.

关于python - 在 Python 中一起分配两个列表的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36750114/

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