簡體   English   中英

按倒數第二個字符對字符串列表進行排序

[英]Sort a list of strings by second-to-last character

我需要使用字符比較對字符串列表進行排序,從倒數第二個元素向下移動到字符串的開頭(對於相等的字符)。 所以基本上我需要得到這個

in_ = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag']

result = ['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']
# sorted on second to last character in each string

這是你想要的嗎? 如果是,則將該倒數第二個字母作為sort()函數的鍵。

a = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag']
a.sort(key=lambda x:x[-2])
print(a)

輸出:

['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']

只是為 Miraj50 的答案添加一些替代方法:您也可以使用itemgetter更清潔/更快的方式來完成

from operator import itemgetter

in_list = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag']
result = sorted(in_list, key=itemgetter(-2))
print(result)

輸出:

['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM