猿问

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

我是 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)

我希望输出是,Emails Sent: 3,但它不会大声笑


墨色风雨
浏览 153回答 1
1回答

万千封印

在 pythonfor e in C中必须读作“对于集合 C 的每个元素 e”,这意味着在每次迭代中,都e取集合中不同元素的值C。在您的示例中,i将采用值“First@email.com”然后是“second@email.com”等...而不是 0、1... 您似乎相信。但是,当您这样做时,email_list[i]您会尝试获取列表的第 i 个值。这不起作用,因为我们看到那i是一个字符串。
随时随地看视频慕课网APP

相关分类

Python
我要回答