[英]Reversing order of a list and then sorting in lexicographical order
我需要編寫一個對單詞列表進行排序的代碼,並將它們按逆序按字典順序排列。 例如,給定列表["harry", "harra", harrb"]
我需要一種方法來反轉每個單詞,因此列表變為["yrrah", "arrah","brrah"]
。然后我需要對其進行排序按照字典順序並將其恢復為原始順序,因此看起來像["harra", "harrb", "harry"]
。我從文件'ifile'中獲取單詞,但是對於此代碼,我只是對單詞進行排序帶有一定數量的字母“ n”。
到目前為止,這是我的代碼:
def getRhymeSortedCount(n,ifile,file):
word_list = []
for word in ifile:
if len(word) == n:
word_list.append(word.strip())
arr = word_list
arr.sort(key = lambda x : x[::-1])
ofile.write("\n".join(word_list))
它正確地按單詞的最后一個字母對單詞進行排序,但是不帶字母數=“ n”的單詞怎么改變我的len語句,使其僅捕獲帶有n個字母的單詞?
指定要排序為反向字符串的鍵
word_list = ["harry","harra", "harrb"]
word_list.sort(key=lambda str: str[::-1])
使用簡單的lambda函數-
arr = ["harry","harra", "harrb"]
arr.sort(key = lambda x : x[::-1])
print(arr)
輸出-
['harra', 'harrb', 'harry']
感覺就像您想要某人為您做作業-所以這是您必須解開一些答案才能理解的答案
word_list = ['harry', 'harra', 'harrb', "ignore_me"]
[y[::-1] for y in sorted([ x[::-1] for x in word_list if len(x) == 5])]
這里要學習的東西:
(哦,我喜歡lambda的答案)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.