我想使用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
我的代码出了什么问题?
答案 0 :(得分:10)
原因是你正在制作一个包含字符串的列表,所以除非输入的字符串是"@"
,否则它不在列表中。
要修复,只需不要将电子邮件地址添加到列表中。您可以直接对字符串执行这些操作。
作为备注,您可能需要查看str.split()
或str.partition
:
email_username, _, email_host = email.partition("@")
答案 1 :(得分:1)
您将整个电子邮件地址添加到列表中。你可能意味着
email_list = list(email)
添加email
的字符(而不是一次整个字符串)。但即使这是不必要的,因为字符串可以像列表一样被切片/索引(因此在这种情况下你根本不需要列表)。
确定电子邮件地址用户名的简便方法可能是
email.split("@")[0]