python實現忽略大小寫對字串列表排序的方法

來源:互聯網
上載者:User
本文執行個體講述了python實現忽略大小寫對字串列表排序的方法,是非常實用的技巧。分享給大家供大家參考。具體分析如下:

先來看看如下代碼:

string = '''the stirngHas manyline InTHE fIlejb51 net'''list_of_string = string.split()print list_of_string   #將字串分離開,放入列表中print '*'*50def case_insensitive_sort(liststring):  listtemp = [(x.lower(),x) for x in liststring]#將字串列表,產生元組,(忽略大小寫字串,字串)  listtemp.sort()#對元組排序,因為元組為:(忽略大小寫字串,字串),就是按忽略大小寫字串排序  return [x[1] for x in listtemp]#排序完成後,返回原字串的列表print case_insensitive_sort(list_of_string)#調用起來,測試一下

結果:

['the', 'stirng', 'Has', 'many', 'line', 'In', 'THE', 'fIle', 'jb51', 'net']**************************************************['fIle', 'Has', 'In', 'jb51', 'line', 'many', 'net', 'stirng', 'THE', 'the']

另一種方法:

使用內建函數
sorted(iterable[,cmp[, key[,reverse]]])

該函數的官方描述文檔如下:

Return a new sorted list from the items in iterable.
key specifies a function of one argument that is used to extract a comparison key from each list element:key=str.lower. The default value isNone.

使用參數key=str.lower

完整代碼如下:

string = '''the stirngHas manyline InTHE fIlejb51 net'''list_of_string = string.split()print list_of_string   #將字串分離開,放入列表中print '*'*50def case_insensitive_sort2(liststring):  return sorted(liststring,key = str.lower)print case_insensitive_sort2(list_of_string)#調用起來,測試一下

效果一樣~

方法三:

使用list的sort方法:

該方法的官方描述文檔如下:

The sort() method takes optional arguments for controlling the comparisons.
cmp specifies a custom comparison function of two arguments (list items) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value is None.
key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None.
reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.

具體代碼如下:

string = '''the stirngHas manyline InTHE fIlejb51 net'''list_of_string = string.split()print list_of_string   #將字串分離開,放入列表中print '*'*50def case_insensitive_sort3(liststring):  liststring.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()))case_insensitive_sort3(list_of_string)print list_of_string

但這次調用的時候就有區別了。

感興趣的朋友可以調試運行一下本文執行個體以加深印象,相信會有新的收穫!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.