我有列表["Tue", "Wed", "Mon", "Thu", "Fri"]
作爲列表,我想使它成爲 ["Mon", "Tue", "Wed", "Thu", "Fri"]
。分類週日文本
如何對此進行排序?
我有列表["Tue", "Wed", "Mon", "Thu", "Fri"]
作爲列表,我想使它成爲 ["Mon", "Tue", "Wed", "Thu", "Fri"]
。分類週日文本
如何對此進行排序?
不是非常有效的,但如果你有他們應該是在順序表...
>>> m = ["Mon", "Tue", "Wed", "Thu", "Fri"]
>>> n = ["Tue", "Wed", "Mon", "Thu", "Fri", "Tue", "Mon", "Fri"]
>>> sorted(n, key=m.index)
['Mon', 'Mon', 'Tue', 'Tue', 'Wed', 'Thu', 'Fri', 'Fri']
注意,如果某個值出現在n
這將拋出一個異常不在m
。
或者把它們與名作爲關鍵字和秩序價值的字典,然後使用key=your_dict.get
作爲重點...類似:
>>> d = {name:val for val, name in enumerate(m)}
>>> d
{'Fri': 4, 'Thu': 3, 'Wed': 2, 'Mon': 0, 'Tue': 1}
>>> sorted(n, key=d.get)
['Mon', 'Mon', 'Tue', 'Tue', 'Wed', 'Thu', 'Fri', 'Fri']
這會不會引發異常(除了PY3。 x您可能會在嘗試排序None
時遇到錯誤),但您可以使用部分變得明智,在缺省之前或之後進行排序,或者獲得等同行爲list.index
,使用key=d.__getitem__
或類似的
http://wiki.python.org/moin/HowTo/Sorting/
你正在尋找一個詞彙的排序。編寫自己的函數也很有趣,作爲一個學習的問題;)
編輯:好吧,你只需要一個函數,一天,返回它的一週數。您可以簡單地在函數中使用一個日期字符串數組,然後使用星期數來對像老闆這樣的元素進行排序。
我在鏈接中看不到詞法排序。你是否指的是Decorate-Sort-Undecorate? –
詞法排序不適用於你的情況。根據你的例子,你會得到[「星期一」,「星期五」,「星期四」,「星期二」,「星期三」],如果你用詞法排序 –
查找並替換1的所有星期一,2星期二,等等,重新分配。
您需要一個序號到每個值(即[1,2,3,4,5]),因爲字母排序不起作用。我認爲這是一個人爲的例子,因爲實際上,您可以創建一個具有預期順序的列表。 –
這是一個散列圖嗎? – phaazon
@skp:礦也是一個人爲的例子。問題是,您必須爲訂購添加其他信息。 –