繁体   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