如何修复:“列表索引必须是整数或片,而不是str”

2024-04-26 04:35:06 发布

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

我是python的新手,还在学习python,我正在尝试编写一个脚本,可以向多个电子邮件发送电子邮件,但是我遇到了一个问题。它不断打印出第9行的错误:

列表索引必须是整数或片,而不是str

我不明白这意味着什么,我需要做些什么来解决这个问题

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

email_list = ["First@email.com", "second@email.com", "third@email.com", "etc..."]

num = 0
for i in email_list:
    msg['To'] = email_list[i] #this line gives the error
    num = num + 1
    server.sendmail(email, email_list[i], text)

print("Emails Sent: " + num)

我希望输出是,电子邮件发送:3,但它没有笑


Tags: textfromimport脚本com列表电子邮件email
1条回答
网友
1楼 · 发布于 2024-04-26 04:35:06

在python中for e in collections必须读作“对于集合中的每个元素e”,这意味着e取集合中每个元素的值

在您的示例中,i将采用First@email.com“那么”second@email.com“等等。。而不是0,1。。。正如你所相信的。 但是,当您执行email_list[i]时,您试图获取列表的第i个值。因为我们看到i是一个字符串,所以它不能工作

相关问题 更多 >