1. 程式人生 > >python 字典排序

python 字典排序

引子

字典,形如 dic = {'a':1 , 'b':2 , 'c': 3},字典中的元素沒有順序,所以dic[0]是有語法錯誤的。並且不可以有重複的鍵值,所以 dic.add['c'] = 4後,字典變成 {'a':1 , 'b':2 , 'c': 4}.

待解決問題

如何根據需要可以根據“鍵”或“鍵值”進行不同順序的排序?

函式原型

sorted(dic,value,reverse)

  • dic為比較函式,value 為排序的物件(這裡指鍵或鍵值),
  • reverse:註明升序還是降序,True--降序,False--升序(預設)

案例

dic = {'a':3 , 'b':2 , 'c': 1}

   


注意

排序之後字典沒有變,順序依舊

    

兩個函式

1.lambda

功能: 建立匿名函式

區別: 和def函式定義,以下兩點區別

  • lambda會建立一個函式物件,但不會把這個函式物件賦給一個識別符號;而def則會把函式物件賦值給一個變數
  • lambda它只是一個表示式,而def則是一個語句

案例:

   

2.iteritems()

功能: iteritems()以迭代器物件返回字典鍵值對

區別: 和item相比:items以列表形式返回字典鍵值對

案例:

   

註釋:

1:在函式sorted(dic.iteritems(), key = lambda asd:asd[1])中,第一個引數傳給第二個引數“鍵-鍵值”,第二個引數取出其中的鍵([0])或鍵值(1])

2:sort函式

一、基本形式
列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。


如果需要一個排序好的副本,同時保持原有列表不變,怎麼實現呢


注意:y = x[:] 通過分片操作將列表x的元素全部拷貝給y,如果簡單的把x賦值給y:y = x,y和x還是指向同一個列表,並沒有產生新的副本

另一種獲取已排序的列表副本的方法是使用sorted函式:


sorted返回一個有序的副本,並且型別總是列表,如下:


二、可選引數

sort方法還有兩個可選引數:key和reverse

1、key在使用時必須提供一個排序過程總呼叫的函式:


2、reverse實現降序排序,需要提供一個布林值:


3:reversed()

這個很好理解,reversed英文意思就是:adj. 顛倒的;相反的;(判決等)撤銷的


相關推薦

python字典排序

字典 dict key value 排序 我們都知道字典是無序的,如何根據字典的key或者value排序呢? 根據字典的key排序 提供三種方法:1、使用lambda >>> a = {‘b‘:‘a‘,‘d‘:‘d‘,‘a‘:‘a‘} >>> sorte

python 字典排序

引子 字典,形如 dic = {'a':1 , 'b':2 , 'c': 3},字典中的元素沒有順序,所以dic[0]是有語法錯誤的。並且不可以有重複的鍵值,所以 dic.add['c'] = 4後

008. Python字典排序

Bigger price 一、題目描述 要求:有一個列表,列表的內容是字典;字典的內容是貨物:價格鍵值對,給定引數n,返回最貴的n個貨物的字典列表 輸入:字典列表和n 輸出:字典列表 示例

每天一點python -- python字典排序

參考:http://www.cnblogs.com/kaituorensheng/archive/2012/08/07/2627386.html             http://www.cnblogs.com/BeginMan/p/3193081.html dict

Python - 字典按值(value)排序

key list odi script dcl nes spl ava port 字典安值排序是一個偽命題. 字典本身是不能被排序的, 已經依照關鍵字(key)排序, 可是列表(list)和元組(tuple)能夠排序, 所以字典須要轉換列表後排序.

python學習:字典排序

eve undle pat openss service cte x86_64 rac 排序 按字典值排序 按照字典value排序,類似sort -k 命令 import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = so

python按照字典排序

方法 python pan sorted imp div per key () d = {‘a‘:1,‘b‘:4,‘c‘:2} 方法一: sorted(d.items(),key = lambda x:x[1],reverse = True) 方法二: impor

PYTHON自動化Day6-函式多個返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密(md5)

一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的

python字典排序

如果有一系列字典或物件例項,我們想根據某個特定欄位來分組迭代資料。 有一字典列表: rows = [ {'address': '北京朝陽區金臺路', 'date': '07/01/2012'}, {'address': '北京朝陽區將臺', 'date': '07/04/2012

Python 字典 列表 巢狀 複雜排序大全

https://blog.csdn.net/ray_up/article/details/42084863   一: 字典排序 解析: 使用sorted 方法, 排序後的結果為一個元組. 可以字串排序(那數字肯定更沒問題了!)    1:  按照鍵值(value

Python 字典 列表 嵌套 復雜排序大全

結果 nbsp 字符串排序 tails 探討 原創文章 python reverse 鏈接 https://blog.csdn.net/ray_up/article/details/42084863 一: 字典排序 解析: 使用sorted 方法, 排序後的結果為一個元

python-關於字典排序問題的相關求解

題目:d = {'數學':98,'語文':89,'英語':79} (一)排序方法一: 1.取d.keys(),d.values() 2.sorted(zip(d.values(),d.keys())) #利用高階函式把資料變成(值,鍵)的元組形式(預設從小到大排序) 若

python列表和字典排序(sort和sorted區別)

sort和sorted區別: 1、sort是應用在list上的,而sorted可應用於任何可迭代的物件上; 2、list的sort方法是在原始list上操作,而sorted返回新的list; 3、sort使用ls.sort(),而sorted使用sorted(ls); 語法:

python lambda,filter,字典排序簡單應用

對於一個字典的簡單排序 lambda:在lambda後面直接跟變數,變數後面是冒號,冒號後面是表示式,表示式計算結果就是本函式的返回值,形式如下: lambda arg1, arg2, ...arg

python字典排序

1.sorted函式按key值對字典排序     先來基本介紹一下sorted函式,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。     

Python字典以鍵或值排序

>>> dict1={"Beijing":34, "Shanghai":40, "Guangzhou":29} >>> sorted(dict1.iteritems(), key=lambda A:A[0]) [('Beijing', 3

python字典按照value進行排序.bak

  先說幾個解決的方法,具體的有時間再細說 d = {'a':1,'b':4,'c':2} 字典是這個,然後要對字典按照value進行排序 方法一: sorted(d.items(),key = lambda x:x[1],reverse = True) 方法二:

python中列表和字典排序

Python 列表內建 list.sort() 方法實現原地排序,同時 Python 還提供 sorted() 函式返回對可迭代物件排序後的新列表。 首先匯入可能需要的模組: # coding:utf-8 import operator import collection

Python字典、列表排序

 一、字典排序 在程式中使用字典進行資料資訊統計時,由於字典是無序的所以列印字典時內容也是無序的。因此,為了使統計得到的結果更方便檢視需要進行排序。Python中字典的排序分為按“鍵”排序和按“值”排序。 1、按“值”排序    按“值”排序就是根據字典的值進行排序