如何根据第二个unigram对bigram列表进行字母顺序排序?
按bigram的第二个unigram字母排序的解决方案
直接用Python内置的排序函数就能搞定,核心是指定排序依据为每个bigram的第二个单词:
代码实现
首先是原列表:
mylist = ["hello world", "this python", "black cat", "brown dog"]
生成排序后的新列表(不修改原列表):
sorted_list = sorted(mylist, key=lambda item: item.split()[1]) print(sorted_list) # 输出: ['black cat', 'brown dog', 'this python', 'hello world']
如果要直接修改原列表:
mylist.sort(key=lambda item: item.split()[1]) # 此时mylist已更新为排序后的结果
原理说明
sorted()和list.sort()都支持key参数,用来定义排序的依据lambda item: item.split()[1]这个匿名函数会把每个bigram字符串按空格分割成两个单词,然后取第二个单词作为排序的关键字- 默认排序规则是升序字母顺序,完全匹配需求
内容的提问来源于stack exchange,提问作者HosseinSedghian
相关产品推荐
相关产品推荐

