簡體   English   中英

如何將電子郵件地址字符串排序到列表

[英]How to sort a string of email addresses to a list

我想將包含電子郵件地址的字符串排序到電子郵件地址列表。 代碼卡住了,什么也沒發生。

unsorted = "sge@grg.lt ggrge@yahoo.com"
def sort_thatstring():
    s = ""
    out = []
    for x in unsorted:
        s = ""
        while x != " ":
            s+=str(x)
        else:
            out.append(s)
sort_thatstring()
print out

我想得到:

out = ["sge@grg.lt", "ggrge@yahoo.com"]

你可以做:

sorted_list = sorted(unsorted.split(), key=lambda x: x.split('@')[1])

print(sorted_list)
#['sge@grg.lt', 'ggrge@yahoo.com']

您的代碼有兩個問題:

每次在for循環中循環時,都會重置s,從而導致丟失已讀取的數據。

while語句還構造了一個循環,但是您像if一樣使用它。 嘗試用if代替while並閱讀條件和循環構造函數之間的區別。

您的函數還需要返回out數組,否則一旦函數到達末尾,它將被銷毀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM