python字典按值排序|python字典(数组)操作排序之学习笔记

更新时间:2018-09-03    来源:python    手机版     字体:

【www.bbyears.com--python】


字典是最与php的数组相似的序列结构。python的列表只能是以索引数字开头并且顺序递增的序列。字典则可以是以字母为key的序列。

元组一般用圆括号来表示,如(1,2,3)
列表一般用方括号来表示,如[1,2,3]
而字典(dict)则用大括号来表示,如{‘a’:1,’b":2,’c":3}

与php不同,php的key,value是用key=>value来表示,python而是用冒号“:”来分隔。

字典可以使用大括号书写键和值或使用dict函数来创建。
dict函数可以指定两个元组或列表来对应创建字典。如:

items = [("name","gumby"),("age","42")]
d = dict(items)

与列表的区别:

k in d(d为字典),查找的是键,而非value,表达式 v in l(l为列表)则用来查找值,而不是索引。

一些字典方法:

clear 清除字典。“原地操作”,不会返回值,类似于列表的sort方法
copy方法返回一个相同键值对儿的新字典。浅复制。因为值本身就是相同的,而不是副本。
在副本中替换值的时候,原始字典不受影响。但是如果修改了某个值,原始字典也会改变。避免这个问题的一种方法就是使用深度复制(deep copy)。

from copy import deepcopy
deepcopy(d)

d.fromkes方法使用给定的值创建新字典。每个键默认对应的是None
get方法获取一个不存在的键时,不会报错,会返回None
has_key方法相法于表达式k in d
items方法将所有的字母项以列表的方式返回。这些列表中的每一项都来自于(键,值)。但是项在返回时没有特殊的顺序。
iteritmes的方法大致相同,但是会返回一个迭代器对象而不是列表。在很多情况下iteritems效率更高。迭代器,相当于decode json之后的对象,而非数组、
keys方法将字典中的键以列表的形式返回。而iterkeys则返回针对键的迭代器。
pop弹出给定键的值。popitem会弹出最后一个元素(实际上是随机项),但如果想一个接一个地移除并处理字典,popitem效率就会高很多,因为不必先获取字典的键值列表。

values和itervalues方法以列表或迭代器的形式返回字典中的值,返回值的列表可以包含重复项。

看些python 字典操作实例

假设字典为dics = {0:"a", 1:"b", "c":3}

1.从字典中取值,当键不存在时不想处理异常

[方法]  dics.get("key", "not found")

[例如]

           

[解释] 当键"key"不存在是,打印"not found"(即想要处理的信息),当存在是输出键值。

【其他解决方案一】

if key in dics:     
    print dics[key] 
else:     
    print "not found!!"

【其他解决方案二】

try:    
     print dics[key] 
except KeyError:    
     print "not found"

例子:

          

2.从字典中取值,若找到则删除;当键不存在时不想处理异常

[方法]  dics.pop("key", "not found")

[例如]

          

[解释] 当键"key"不存在是,打印"not found"(即想要处理的信息),当存在是输出键值,并且去除该健。

3.给字典添加一个条目。如果不存在,就指定特定的值;若存在,就算了。

[方法] dic.setdefault(key, default)

[例如]

      

python 字典排序

 

dic = {"a":3 , "b":2 , "c": 1}     注意 排序之后原字典没有变,顺序依旧      两个函数 1.lambda 功能: 创建匿名函数 区别: 和def函数定义,以下两点区别 lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符;而def则会把函数对象赋值给一个变量 lambda它只是一个表达式,而def则是一个语句 案例:     2.iteritems() 功能: iteritems()以迭代器对象返回字典键值对 区别: 和item相比:items以列表形式返回字典键值对 案例:     注释: 在函数sorted(dic.iteritems(), key = lambda asd:asd[1])中,第一个参数传给第二个参数“键-键值”,第二个参数取出其中的键([0])或键值(1])

本文来源:http://www.bbyears.com/jiaocheng/44076.html

热门标签

更多>>

本类排行