python資料同時排序
1樓:匿名使用者
python列表具有內建的 方法,可以在原地修改列表。 還有一個 sorted()內建的函式從迭代構建一個新的排序列表。在本文中,我們將**使用python排序資料的各種技術。
請注意,sort()原始資料被破壞,sorted()沒有對原始資料進行操作,而是新建了一個新資料。
一、基本的排序。
最基本的排序很簡單。只要使用sorted()函式即可返回一個 新的排序的列表。
sorted([5, 2, 3, 1, 4])
咱們也可以使用 方法。該方法是對列表list進行的原地操作(原資料被修改,已經不是原來的本來面目)。一般情況下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()會更具效率。
a = 5, 2, 3, 1, 4]
>>a #a發生改變。
另一個不同點, 方法只能應用於列表物件資料。而 sorted()卻可以對任何可迭代物件進行排序。也就是說sorted()更具有普遍使用性。
這裡大燈建議初學者使用sorted()。
二、key引數函式。
和 sorted()都有key引數,可以指定函式來對元素進行排序。
例如,這裡我們使用一個字串(字串也是可迭代物件)
sorted("this is a test string from andrew".split(),key=
python判斷列表是否已排序的各種方法及其效能分析
2樓:匿名使用者
本文基於語言,給出判斷列表是否已排序的多種方法,並在作者的windows xp主機(pentium g630 主頻2gb記憶體)上對比和分析其效能表現。
一。 問題提出。
haskell培訓老師提出一個問題:如何判斷列表是否已經排序?
排序與否實際只是相鄰元素間的某種二元關係,即a->a->bool。所以第一步可以把二元組列表找出來;第二步是把這個函式作用於每個元組,然後用and操作。老師給出的實現**如下:
pair lst = zip lst ( tail lst )
sorted lst predict = and [ predict x y | x,y) haskell中,等號前面是函式的名稱和引數,後面是函式的定義體。pair函式將列表lst錯位一下(tail除去列表的第一個元素)後,和原列表在zip的作用下形成前後相鄰元素二元組列表。predict函式接受兩個數字,根據大小返回true或對型別為[bool]的列表中所有元素求與,其語義類似python的all()函式。
隨後,老師請大家思考效能問題。作者提出,若準確性要求不高,可生成三組隨機數排序後作為下標,提取原列表相應的三組元素組成三個新的子列表("取樣")。若判斷三個子列表遵循同樣的排序規則時,則認為原列表已排序。
當列表很大且前段已排序時,選取適當數目的隨機數,可在保障一定準確率的同時顯著地降低運算規模。
此外,實際應用中還應考慮資料**。例如,python語言的方法在windows系統中返回的列表條目滿足字母序,在linux系統中則返回亂序條目。因此,若判斷系統平台(為win32,則條目必然已經排序。
為對比驗證隨機取樣方式的可行性,作者先在網上搜集判斷列表排序的現有方法,
有關Python匯入模組的問題,python中import匯入模組失敗的問題?
有關photo匯入模組的問題可以諮詢一下他這個作業系統 python中 import匯入模組失敗的問題?要看目錄的位置,是否和你這個指令碼在同一級目錄下,而且ping.py這個目錄裡也需要 init py這個檔案。如果解決了您的問題請採納!如果未解決請繼續追問 當多次import同一個模組時,只有第...
python查詢排序問題,求助
usr bin env python coding utf 8 def getformat filename with open filename as f return map str.strip,sorted f,key lambda line 100 line.count 老虎 zhi res...
python初學者有問題求回答python新手求解答
我也剛學到這裡,這裡的迴圈是一個一個數字開始的,不是0 9一起開始的。首先是0,取餘數後為0,直接continue,再加上2,所以第一個數的結果是2 然後是1,取餘數後為1,直接列印輸出,結果為1 按此原理,答案依次為2,1,4,3,6,5,8,7,10,9。for i in range 10 i從...