首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按特定名称对列表进行排序

按特定名称对列表进行排序
EN

Stack Overflow用户
提问于 2018-06-11 07:30:19
回答 5查看 76关注 0票数 -1

我有一个包含如下链接的列表:

代码语言:javascript
复制
my_list = ['google.com', 'wikipedia.org/musics', 'facebook.com', 'wikipedia.org/Elon_Musk', 'fb.com']

我想通过将包含单词"wikipedia“的urls放在第一位来对此列表进行排序,如下所示:

代码语言:javascript
复制
my_list = ['wikipedia.org/Elon_Musk', 'wikipedia.org/musics', 'facebook.com', 'google.com', 'fb.com']

谢谢,

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-06-11 07:38:17

如果你也想对维基百科进行排序

代码语言:javascript
复制
my_list = ['google.com', 'wikipedia.org/musics', 'facebook.com', 'wikipedia.org/Elon_Musk', 'fb.com']
list(sorted(my_list, key=lambda e: "00"+e if "wikipedia" in e else e))
票数 0
EN

Stack Overflow用户

发布于 2018-06-11 07:33:15

试试这个:

代码语言:javascript
复制
my_list = ['google.com', 'wikipedia.org/musics', 'facebook.com', 'wikipedia.org/Elon_Musk', 'fb.com']
print(list(reversed(sorted(sorted(my_list,key=lambda x: 'wikipedia' not in x),key=lambda x: len(x)))))

输出:

代码语言:javascript
复制
['wikipedia.org/Elon_Musk', 'wikipedia.org/musics', 'facebook.com', 'google.com', 'fb.com']
票数 1
EN

Stack Overflow用户

发布于 2018-06-11 07:35:59

另一种方法(只需记住过滤功能):

代码语言:javascript
复制
my_list = ['google.com', 'wikipedia.org/musics', 'facebook.com', 'wikipedia.org/Elon_Musk', 'fb.com']
new_list = list(filter(lambda x: 'wikipedia' in x, my_list))+list(filter(lambda x: 'wikipedia' not in x, my_list))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50788921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档