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 に答える