當前位置:首頁 » 編程語言 » python的cmp函數

python的cmp函數

發布時間: 2023-02-10 07:14:45

python2.7是python幾

Python2.7是Python2版本,Python3.x才是Python3版本。

Python2與Python3的主要區別:

區別一:print語法使用

Python2.7 print語法使用 >>> print "Hello Python"

Python3.7 print語法使用 >>> print("Hello Python")

區別二: raw_input()和input()

Python 2.7 raw_input() input() 都存在 可使用 raw_input()接收字元串string input()接收數字int /flot.

Python 3.7 raw_input()不存在 僅存在input() 兩者合並 接收任意格式 返回string

區別三: 函數cmp()

python 2.7 cmp(x,y)函數用於比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

python3.7 cmp()已經不存在了,如果你需要實現比較功能,需要引入 operator 模塊,適合任何對象

② 如何把Python2的代碼轉換為Python3的代碼

可以利用Python內置工具2to3.py,幫你自動將Python2的代碼轉換為Python3的代碼的。這個腳本的位置位在Python安裝的根目錄\Python27\Tools\Scripts\2to3.py。
比如我手上有個Python 2.x的python腳本:D:\tmp\transform.py
可以通過打開命令提示符,定位至該要轉換的腳本目錄下,然後運行
2to3.py -w transform.py

如果上述不加-w參數,則默認只是把轉換過程所對應的diff內容列印輸出到當前窗口而已。加了-w,就是把改動內容,寫回到原先的文件了。

③ python怎麼比較兩個字元串相等

可以直接使用python的內建函數cmp():s1='hello'
s2='hell'
s3='helloworld'
s4='hello'
cmp(s1,s2)
#輸出結果為1
cmp(s1,s3)
#輸出結果為-1
cmp(s1,s4)
#輸出結果為0

④ Python中字典的內建函數用法是什麼

字典內置函數&方法
Python字典包含了以下內置函數:
1 cmp(dict1, dict2)
比較兩個字典元素。
2 len(dict)
計算字典元素個數,即鍵的總數。
3 str(dict)
輸出字典可列印的字元串表示。
4 type(variable)
返回輸入的變數類型,如果變數是字典就返回字典類型。

⑤ 什麼是python內置函數sorted

Python對容器內數據的排序有兩種,一種是容器自己的sort函數,一種是內建的sorted函數。
sort函數和sorted函數唯一的不同是,sort是在容器內排序,sorted生成一個新的排好序的容器。

對於一個簡單的數組 L=[5,2,3,1,4].
sort: L.sort()

sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
iterable:待排序的可迭代類型的容器;
cmp:用於比較的函數,比較什麼由key決定,有默認值,迭代集合中的一項;
key:用列表元素的某個已命名的屬性或函數(只有一個參數並且返回一個用於排序的值)作為關鍵字,有默認值,迭代集合中的一項;
reverse:排序規則. reverse = True 或者 reverse = False,有默認值。
返回值:是一個經過排序的可迭代類型,與iterable一樣。

如果是一個多維的列表 L=[(『b』,2),(『a』,1),(『c』,3),(『d』,4)].
有三種選擇對這個多維列表進行排序
利用cmp函數
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
L.sort(cmp=lambda x,y:cmp(x[1],y[1]))
利用key
sorted(L, key=lambda x:x[1]);
L.sort(key=lambda x:x[1]);
反序
以上幾種排序均可加上參數reverse.
例如 sorted(reverse=True), L.sort(reverse=True). 或者改成False
OrderedDict是collections中的一個包,能夠記錄字典元素插入的順序,常常和排序函數一起使用來生成一個排序的字典。
比如,比如一個無序的字典
d = {『banana』:3,』apple』:4,』pear』:1,』orange』:2}
通過排序來生成一個有序的字典,有以下幾種方式
collections.OrderedDict(sorted(d.items(),key = lambda t:t[0]))
或者
collections.OrderedDict(sorted(d.items(),key = lambda t:t[1]))
或者
collections.OrderedDict(sorted(d.items(),key = lambda t:len(t[0])))

⑥ python3.2.2版本中的cmp()函數

3開始沒這個函數了,官方文檔是這么寫的

The cmp() function should be treated as gone, and the __cmp__() special method is no longer supported. Use __lt__() for sorting, __eq__() with __hash__(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)

大意就是cmp()函數已經「離開」了,如果你真的需要cmp()函數,你可以用表達式(a > b) - (a < b)代替cmp(a,b)

⑦ Python3.x運用cmp()函數進行高級排序報錯

numbers.sort這種用法是錯誤的,如果你想要排序,則用如下語句:
num_sort=sorted(numbers,key=None,reverse=False)
新的list num_sort才是一個排序後的列表。然後,你自定義的cmp過程只能對比兩個數字,而能對比列表中的各個元素,python3解釋器不知道你要做什麼,所以才會出錯。

⑧ python 內置排序函數使用

python內置關於排序的工具主要有兩個一個是列表自帶的 sort() 方法,另外一個是 sorted() 函數。Python 列表內置方法可以直接修改列表。而 sorted() 內置函數從一個可迭代對象(列表,元組等都可以)構建一個新的排序列表。其函數原型分別如下:

對列表進行默認排序

從函數原型來看,可以看到兩者都具有兩個可選參數,它們都必須指定為關鍵字參數。
key 指定帶有單個參數的函數,用於從 iterable 的每個元素中提取用於比較的鍵 (例如 key=str.lower)。默認值為 None (直接比較元素)。 key 形參的值應該是個函數(或其他可調用對象),它接受一個參數並返回一個用於排序的鍵。

假設有其他類型的變數,比如一個自定義的類或者列表中又是一個列表。以官網例子為例有這樣一個列表,其元素為元組,

可以用以下方式按照年齡排序

類似的有自定義類

可以用如下方式進行排序

也可以顯示定義一個函數,且只有一個參數,返回用於排序的鍵,比如

總之就是定義一個函數返回一個用於排序的鍵,可以用lambda函數或者 def 定義都可以。

上面實現的簡單函數實際就是實現了返回一個有序結構的第 n 的元素,或者某個類中的某個屬性,因此 Python 提供了便利功能,使訪問器功能更容易,更快捷。operator 模塊有 itemgetter() 、 attrgetter() 函數。分別完成返回第 n 個元素,某個屬性功能。上面的排序可以用如下方式進行實現

在python2中,sort有一個 cmp 參數,即用一個函數來自定義比較,在python3中這種方式被取消。為了繼承類似的用法,在 Python 3.2 中, functools.cmp_to_key() 函數被添加到標准庫中的 functools 模塊中。
這種作用先定義如何比較兩個變數,以上面的學生列表按照年齡排序為例

這種做法自定義比較函數接收兩個形參,返回比較結果(bool),而新式方法接受一個參數,返回的是比較的鍵。

假設有字典 d = {'b':2, 'a':1,'c':8,'d':4} ,則可以通過以下方式對字典按照鍵和值進行排序

⑨ 各位大神,用python對資料庫中的某列數據排序怎麼搞不是用sql來排序哦

通過例子來說明sorted的用法:

1.對由tuple組成的List排序
Python代碼
>>>students=[('john','A',15),('jane','B',12),('dave','B',10),]


用key函數排序(lambda的用法見注釋1)
Python代碼
>>>sorted(students,key=lambdastudent:student[2])#sortbyage
[('dave','B',10),('jane','B',12),('john','A',15)]


用cmp函數排序
Python代碼
>>>sorted(students,cmp=lambdax,y:cmp(x[2],y[2]))#sortbyage
[('dave','B',10),('jane','B',12),('john','A',15)]


用operator函數來加快速度,上面排序等價於:(itemgetter的用法見注釋2)
Python代碼
>>>fromoperatorimportitemgetter,attrgetter
>>>sorted(students,key=itemgetter(2))


用operator函數進行多級排序
Python代碼
>>>sorted(students,key=itemgetter(1,2))#sortbygradethenbyage
[('john','A',15),('dave','B',10),('jane','B',12)]2.對由字典排序
Python代碼
>>>d={'data1':3,'data2':1,'data3':2,'data4':4}
>>>sorted(d.iteritems(),key=itemgetter(1),reverse=True)
[('data4',4),('data1',3),('data3',2),('data2',1)]

⑩ python語句list(range(1,10,3))執行結果為

Python語句list(range(1,10,3))執行結果為[1,4,7]。

語法是:range(start,stop[,step])

參數說明:

(1)start:計數從start開始,默認是從0開始。例如range(5)等價於range(0,5);

(2)stop:計數到stop結束,但不包括stop。例如:range(0,5)是[0,1,2,3,4]沒有5;

(3)step:步長,默認為1。例如:range(0,5)等價於range(0,5,1)。

因此,range(1,10,3)的意思是1到10之間的tuple,間隔為3,所以結果是(1,4,7)。

列表(List)是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。

所以,list(range(1,10,3))執行結果為[1,4,7]。



(10)python的cmp函數擴展閱讀

Python列表函數&方法

Python包含以下函數:

1、cmp(list1, list2):比較兩個列表的元素;

2、len(list):列表元素個數;

3、max(list):返回列表元素最大值;

4、min(list):返回列表元素最小值;

5、list(seq):將元組轉換為列表。

Python包含以下方法:

1、list.append(obj):在列表末尾添加新的對象;

2、list.count(obj):統計某個元素在列表中出現的次數;

3、list.extend(seq):在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表);

4、list.index(obj):從列表中找出某個值第一個匹配項的索引位置;

5、list.insert(index, obj):將對象插入列表;

6、list.pop([index=-1]):移除列表中的一個元素(默認最後一個元素),並且返回該元素的值;

7、list.remove(obj):移除列表中某個值的第一個匹配項;

8、list.reverse():反向列表中元素;

9、list.sort(cmp=None, key=None, reverse=False):對原列表進行排序。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:581
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:875
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:570
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:756
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:672
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:999
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:242
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:102
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:794
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:700