【发布时间】:2019-03-01 04:30:19
【问题描述】:
给定一个列表,
url = ["www.annauniv.edu", "www.google.com", "www.ndtv.com", "www.website.org", "www.bis.org.in", "www.rbi.org.in"];
根据顶级域(edu、com、org、in)对列表进行排序 我对python很陌生,我试图通过按倒数第二个术语排序列表来解决这个问题,即“d,o,r,i”。但是我得到的输出不符合预期你能帮我理解为什么吗?
url = ["www.annauniv.edu", "www.google.com", "www.ndtv.com", "www.website.org", "www.bis.org.in", "www.rbi.org.in"]
def myFn(s):
return s[-2]
print sorted(url,key=myFn) `
我得到以下输出:
['www.annauniv.edu', 'www.bis.org.in', 'www.rbi.org.in', 'www.google.com', 'www.ndtv.com', 'www.website.org']
但是当我尝试使用此列表url=["x.ax","u.ax","x.cx","y.cx","y.by"] 时,我得到了正确的结果,即
['x.ax', 'u.ax', 'y.by', 'x.cx', 'y.cx']
【问题讨论】:
-
@AshishKumarS 对于
url = ["www.annauniv.edu", "www.google.com", "www.ndtv.com", "www.website.org", "www.bis.org.in", "www.rbi.org.in"],预期的输出应该是什么?是否应该按字母顺序排序? -
@taurus05 他们应该按照这个顺序先 edu 然后 com 然后 org in
-
@AshishKumarS,那我猜这不是字母顺序。
-
@taurus05 如果您在 .edu .com .in .org 中看到 如果您使用 d o i 和 r 排序,那么它可以是字母顺序