我對python很新,我的歉意是這已經被回答。我可以看到很多以前對「排序」問題的答案,但是我的問題似乎與這些問題和答案有點不同。排序基於可變數量的排序鍵輸入後執行
我有一列鍵,包含在一個元組中的每個鍵,我正在嘗試排序。每個密鑰都是從CSV文件中的列的子集派生的,但是這個子集在運行時由用戶確定,並且不能進行硬編碼,因爲它會因執行而異。我還有一個日期時間值,它總是作爲元組中最後一個元素的一部分形成的(所以至少有一個元素可以排序 - 即使用戶沒有提供額外的元素)。
的元組進行排序的樣子:
(col0, col1, .... colN, datetime)
凡COL0到科隆是基於「N」在一個CSV文件列中的值,並且可以從運行之間改變。
在每個執行過程中,列表中的元組在每個元組中始終具有相同數量的項目。但是,它們需要能夠根據用戶輸入而在運行之間變化。
的排序是這樣的:
sorted(concurrencydict.keys(), key=itemgetter(0, 1, 2))
...當我做硬編碼排序基於前三列。問題是我不知道在執行之前需要對3件物品進行分類 - 可能是1,2,3或更多。
我希望這個描述有意義。
我還沒有想到如何讓itemgetter接受可變數量的值。
有沒有人知道是否有一個優雅的方式來執行基於python項目的可變數量的排序項目的數量確定在運行時(而不是基於固定的列號或屬性名稱)?
'鍵= itemgetter(* sort_columns)'? – Blckknght
太容易了 - 我對Python的新鮮感恐怕 –