我想将包含电子邮件地址的字符串排序到电子邮件地址列表。 代码卡住了,没有任何反应。
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"]
答案 0 :(得分:3)
你可以这样做:
sorted_list = sorted(unsorted.split(), key=lambda x: x.split('@')[1])
print(sorted_list)
#['sge@grg.lt', 'ggrge@yahoo.com']
答案 1 :(得分:2)
您的代码有两个问题:
每次循环for循环都会重置s,导致您丢失已读取的数据。
while语句也构造了一个循环,但是你像if一样使用它。尝试使用if替换,并阅读条件和循环构造函数之间的差异。
你的函数也需要返回out数组,否则它会在你的函数到达结束时被销毁。