Python中的"ValueError:list.index(x):x不在列表中",但它存在

Kos*_*tos 1 python string-parsing

我想使用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
Run Code Online (Sandbox Code Playgroud)

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

ValueError: list.index(x): x not in list
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?

Gar*_*tty 10

这样做的原因是你正在创建一个包含字符串的列表,所以除非输入的字符串是"@",否则它不在列表中.

要修复,只需不要将电子邮件地址添加到列表中.您可以直接对字符串执行这些操作.

作为备注,您可能想要结帐str.split(),或者str.partition:

email_username, _, email_host = email.partition("@")
Run Code Online (Sandbox Code Playgroud)