使用 IMAPClient 的列表索引在列表循环中的 for i 超出范围?

List Index be out of range in a for i in List loop using IMAPClient?

我不确定我是否遗漏了一些明显的东西。我正在尝试检索电子邮件并遍历它们以查找文本中的特定项目。代码运行但在遍历所选文件夹中的项目时抛出 'List Index out of range' 错误。当被迭代的列表是要使用的索引位置列表时,我不明白怎么会发生这种情况?

我正在使用 IMAPClient 包,我的脚本会选择正确的文件夹,并找到具有特定主题的电子邮件,然后 returns 一个列表

client.select_folder('WebsiteMessages', readonly=True)
result = client.search('SUBJECT "User Details"')
print(result)

此 returns 文件夹中符合搜索条件的项目列表

 [1, 2, 9, 10, 11, 15, 19, 22, 23, 24, 25, 26, 27, 28, 30, 32, 36, 46, 48, 49, 51, 55, 57, 60, 61]

如果我尝试遍历该列表,我会到达特定点,然后出现列表索引超出范围错误。

for i in result:
    message = client.fetch(result[i], b'RFC822')
    print(message)

我不明白这个错误是怎么出现的,因为列表是由搜索生成的?有什么想法吗?

未测试,只是猜测:

for i in result:
    message = client.fetch(i, b'RFC822')
    print(message)

i已经是值了,用它作为值的索引是不正确的。

第二个解决方案,可能正是您想要的:

for i in range(result):
    message = client.fetch(result[i], b'RFC822')
    print(message)