亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

排序后,list內元素自身大小寫改變不改變問題。

def?cmp_ignore_case(s1,s2):
????return?cmp(s1.lower(),s2.lower())
print?sorted(['','','',''],cmp_ignore_case)

其中s1和s2都已經進行了大小寫轉換處理,為什么最后輸出時并沒有大小寫的轉換效果?


正在回答

2 回答

cmp(x,y) 函數只是用于比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1,并不會返回x或y。這個題中傳入了s1,s2。但是比較的時候只是借用對s1/s2轉換后的數值進行比較,返回的也只是-1、0、1。拆開也就相當于:

def cmp_ignore_case(s1, s2):

? ? s1 = s1.lower()

? ? s2 = s2.lower()

? ? if s1 > s2:

? ? ? ? return 1

? ? if s1 < s2:

? ? ? ? return -1

? ? return 0

print sorted(['', '', '', ''], cmp_ignore_case)


0 回復 有任何疑惑可以回復我~

sorted只是對list進行排序,并不會改變list中的內容

0 回復 有任何疑惑可以回復我~
#1

Cythine 提問者

但是在"return cmp(s1.lower(),s2.lower())"中已經進行了lower()處理,不應該是大小寫改變了嗎?還是說s1.lower()是將原字符串變為小寫后得到一個新的字符串?
2015-11-25 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

排序后,list內元素自身大小寫改變不改變問題。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號