python字典的值按照自定義排序,python對字典的值排序

本文目錄一覽:

在Python 3 中的自定義排序怎麼辦

python3 sorted取消了對cmp的支持。 

python3 幫助文檔: 

sorted(iterable, key=None, reverse=False)

reverse是一個布爾值。如果設置為True,列表元素將被倒序排列,默認為False

key接受一個函數,這個函數只接受一個元素,默認為None

Key的作用原理

Python2中的自定義布爾函數cmp=custom_cmp(x, y)由Python3中的key=custom_key(x)代替。

在python3中,待比較元素x通過custom_key函數轉化為Python能比較的值custom_key(x),進而再基於返回值進行排序。

例子1:

my_alphabet = [‘a’, ‘b’, ‘c’]def custom_key(word):

  numbers = []   for letter in word:

     numbers.append(my_alphabet.index(letter))   return numbers# python中的整數列表能夠比較大小# custom_key(‘cbaba’)==[2, 1, 0, 1, 0]x=[‘cbaba’, ‘ababa’, ‘bbaa’]

x.sort(key=custom_key)123456789101112

例子2

students = [(‘john’, ‘A’, 15), (‘jane’, ‘B’, 12), (‘dave’,’B’, 10)]

sorted(students,key=lambda x: x[2]) #按照年齡來排序12

關於lambda表達式

例子3

默認sorted([True, False])==[False, True] (False=0 True=1)

一個字元串排序,排序規則:小寫大寫奇數偶數

#元組內(e1, e2, e3)的優先順序排列為: e1 e2 e3sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x)#input: ‘asdf234GDSdsf23’#output: ‘addffssDGS33224’12345

x.isdigit()的作用是把數字放在後邊(True),字母放在前面(False).

x.isdigit() and int(x) % 2 == 0的作用是保證數字中奇數在前(False),偶數在後(True)。

x.isupper()的作用是在前面基礎上,保證字母小寫(False)在前大寫在後(True).

最後的x表示在前面基礎上,對所有類別數字或字母排序。

python字典中根據值的大小,按順序排列鍵有什麼方法?

s = {“a”:”bb”,”b”:”cc”,”c”:”aa”}

def fun(s):

d = sorted(s.iteritems(),key=lambda t:t[1],reverse=False)

return d

d = fun(s)

print d

iteritems()得到的[(鍵,值)]的列表,通過sorted方法,指定排序的鍵值key是原來字典中的value屬性,其中用到了匿名函數lambda,參數為t列表,返回第二個元素t[1],也就是每個鍵值對中的value, 從小到大排序時reverse=False,從大到小排序是True!

Python [1]  (英國發音:/ˈpaɪθən/美國發音:/ˈpaɪθɑːn/),是一種面向對象的解釋型計算機程序設計語言,由荷蘭人GuidovanRossum於1989年發明,第一個公開發行版發行於1991年。

Python是純粹的自由軟體, 源代碼和解釋器CPython遵循 GPL(GNU GeneralPublicLicense)協議。Python語法簡潔清晰,特色之一是強制用空白符(whitespace)作為語句縮進。

Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕鬆地聯結在一起。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面)

然後對其中有特別要求的部分,用更合適的語言改寫,比如3D遊戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而後封裝為Python可以調用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平台問題,某些可能不提供跨平台的實現。

python字典怎麼排序

python字典怎麼排序?

定義一個字典類型

mydict = {2: ‘小路’, 3: ‘黎明’, 1: ‘郭富城’, 4:’周董’}

可分別列印 key和value 看一下數據

按KEY排序,使用了 lambda和 reverse= False(正序)

key和value都輸出

reverse= True(逆序)

按value排序,漢字次序不是按拼音輸出

sorted並不改變字典本身的數據次序。

輸出後為列表和元組

可以 A = sorted(mydict.items(),key = lambda mydict:mydict[1],reverse= False) 賦值給A ,A的次序是變化後的

推薦:《Python教程》

注意事項

sorted並不改變字典本身的數據次序

如果要變化後的 可以賦值給另一個列表變數以上就是小編分享的關於python字典怎麼排序的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

Python中字典按照指定列表的順序排列

roles = [“OWNER”, “RCOM”, “HRGDL2”, “HRM”, “HRH”, “MP”, “HP”, “VP”, “GM”]

info = {“VP”: “80003”, “HRM”: “F140019”, “MP”: “F130008”, “HRGDL2”: “F140390”, “OWNER”: “F133255”, “RCOM”: “F900151”, “GM”: “00903”, “HP”: “80355”, “HRH”: “81453”}

sorted_dict = map(lambda x:{x:info[x]}, roles)

print(sorted_dict)

關於python當中字典值排序的問題

#!/usr/bin/env python

# coding: utf-8

#

# author: Tim Wang

# date: Nov., 2014

# filename: baidu/qa3.py

“””以下代碼僅提供擴展參考的方法,在2.7版本下可運行。”””

import re

def parser(dataserial, patt, keyname, *evalattrs):

    “””對給定的dataserial數據序列,用patt進行正則解析

        對指定的evalattrs進行值轉換,

        以其中的keyname為字典鍵值,

    “””

    collector = {}

    for matched in filter(None, map(patt.match, dataserial)):

        data = matched.groupdict()

        for attr in evalattrs:

            data[attr] = eval(data[attr])

        collector[data.get(keyname)] = data

    return collector

def iterdictsort(dictdatas, sortattr):

    for v in sorted(dictdatas.values(),

                    key=lambda v: v.get(sortattr)):

        yield v

context = u”””

廣州        2014-11-22    蘋果    9    96

深圳        2014-11-23    香蕉    10    75

杭州        2014-11-24    番茄    5    43

北京        2014-11-25    橘子    8    24

“””

patt = re.compile(r”””^

                  (?Plocale\S+)

                  \s+

                  (?Pdate\S+)

                  \s+

                  (?Pproduct\S+)

                  \s+

                  (?Pqty\d+)

                  \s+

                  (?Pamount\d+)

                  \s*$”””, re.I|re.U|re.X)

fmt = u”{locale} {date} {qty:4} {amount:8}”

datas = parser(context.splitlines(), patt, “locale”, “qty”, “amount”)

print “=”*32

print “\n”.join(fmt.format(**data)

                for data in iterdictsort(datas, ‘qty’))

print “=”*32

print “\n”.join(fmt.format(**data)

                for data in iterdictsort(datas, ‘amount’))

python字典有多個值的排序

s = {“a”:”bb”,”b”:”cc”,”c”:”aa”}

def fun(s):

d = sorted(s.iteritems(),key=lambda t:t[1],reverse=False)

return d

d = fun(s)

print d

iteritems() 得到的[(鍵,值)]的列表, 通過sorted方法,指定排序的鍵值key是原來字典中的value屬性,其中用到了匿名函數lambda, 參數為t列表,返回第二個元素t[1],也就是每個鍵值對中的value, 從小到大排序時 reverse=False,從大到小排序是True!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/204317.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-07 12:16
下一篇 2024-12-07 12:16

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論