1

我想使用 Python 从电子邮件地址中提取用户名。我想到的解决方案是将电子邮件地址附加到列表中,找到@符号的索引,然后对列表进行切片,直到找到索引。

我的代码是:

#!/usr/bin/env python<br/>
email = raw_input("Please enter your e-mail address: ")
email_list = []
email_list.append(email)
at_symbol_index = email_list.index("@")
email_username = email_list[0:at_symbol_index]
print email_username

但是,每次我运行脚本时,它都会返回错误:

ValueError: list.index(x): x not in list

我的代码有什么问题?

4

2 回答 2

10

这样做的原因是您正在制作一个包含字符串的列表,因此除非输入的字符串是"@",否则它不在列表中。

要解决此问题,只需不要将电子邮件地址添加到列表中。您可以直接对字符串执行这些操作。

请注意,您可能想改为结帐str.split(),或者str.partition

email_username, _, email_host = email.partition("@")
于 2013-01-05T21:54:24.503 回答
1

您将整个电子邮件地址添加到列表中。你也许是说

email_list = list(email)

它添加了(而不是一次整个字符串)的字符email但即使这样也是不必要的,因为字符串可以像列表一样被切片/索引(所以在这种情况下你根本不需要列表)。

确定电子邮件地址的用户名的更简单方法可能是

email.split("@")[0]
于 2013-01-05T21:56:08.193 回答