使用 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)
我不确定我是否遗漏了一些明显的东西。我正在尝试检索电子邮件并遍历它们以查找文本中的特定项目。代码运行但在遍历所选文件夹中的项目时抛出 '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)