Python数据结构-dict

1)定义python

Key-value键值对的数据的集合,可变的无序的,key不重复app

2)         初始化,定义.dom

d={} 空的函数

d=dict(a=1,b=2)     {'a': 1, 'b': 2}

 

类方法。d=dict.fromkeys(range(5))对象

d=dict.fromkeys(range(5),0)排序

 dict(**kwargs) 使用name=value对初始化一个字典内存

dict(iterable, **kwarg) 使用可迭代对象和name=value对构造字典,不过可迭代对象的元素必须是一个二元结构字符串

d = dict(((1,'a'),(2,'b'))) 或者 d = dict(([1,'a'],[2,'b']))get

dict(mapping, **kwarg) 使用一个字典构建另外一个字典string

d = {'a':10, 'b':20, 'c':None, 'd':[1,2,3]}

3)         字典元素的访问

d[key]   返回key对应的值。

key不存在抛出KeyError异常

get (key[,default])  d.get(6,2000)不会报错。  key 不存在返回缺省值。

返回key对应的值value

key不存在返回缺省值,若是没有设置缺省值就返回None

setdefault(key[,default])  

setdefault(100,300)不存在的话建立,存在的话不改变。

返回key对应的值value

 key不存在,添加kv对,value为default,并返回default,若是default没有设置,缺省为None

4)         增长和修改。

d=[key]=100将key对应的值修改成value。建立后直接赋值。Key存在不变,不存在直接赋值。Key是惟一的,key的位置是随机的。

d[key] = value

将key对应的值修改成value

key不存在添加新的kv对

update([other]) -> None

使用另外一个字典的kv对更新本字典

key不存在,就添加

key存在,覆盖已经存在的key对应的值

就地修改

d.update(red=1)

d.update((('red',2),))

d.update({'red':3})

 

5)字典删除。

pop(key[,default])。弹出元素。pop(key)

popitem () 移除并返回一个任意的键值对。

返回的是二元组,,key和value对应的。

clear()清空字典。

6)字典删除del。

del实际上删除的是名称,而不是对象。本质上减小了一个对象的引用。

7)字典的遍历。 for i in   dict   拿出全部的key。拿到的都是key值。

遍历k

for k in d.keys():                        for k in d:

 

    print(k)                           print(k)

 

for key in d.keys():              

      print(key)              

 

遍历value

for value in d.values():               for k in d:

   print(value)                    print(d.get(k))

 

                             

for k in d:

    print(d[k])                            for k in d.keys():

                                         print(d.get(k))

 

遍历k,v对

for key,value in d.items():

print(key,value)

 

 

for k ,_ in d.items():

 print(k)

 

for _,v in d.items():

    print(v)

 

 

 

8)字典遍历的总结。

Keys,values,Items方法返回一个相似一个生成器的可迭代对象,不会把函数的返回值复制到内存中。

dictionary view对象。

字典的entry的动态的试图,字典变化,视图将反应出这些变化。

 

9)     字典遍历和移除元素

移除字符串,str。

keys=[]

for k in keys:

    d.pop(k)

print(k)

for 循环过程当中是坚定不容许移除元素的。

10)字典的key

要求必须和set的元素要求一致,,

Key必须可hash,key是去重复的。

d = {1 : 0, 2.0 : 3, "abc" : None, ('hello', 'world', 'python') : "string", b'abc' : '135'}

{1: 0, 2.0: 3, b'abc': '135', 'abc': None, ('hello', 'world', 'python'): 'string'}

11)  defaultdict

collections.defaultdict([default_factory[, ...]])

collentions.default

import random

from collections import defaultdict

 

d=defaultdict(list)

for i in 'abcdef':

    for i in range(random.randint(1,5)):

        d[k].append(i)

print(d)

12)  ordereddict有序的字典。

collections.OrderedDict([items])

key并非按照加入的顺序排列,可使用OrderedDict记录顺序

 

from collections import OrderedDict

import random

d={'banana':3,'apple':4,'pear':1,'orange':2}

print(d)

keys=list(d.keys())

random.shuffle(keys)

print(keys)

od=OrderedDict()

for key in keys:

    od[key]=d[key]

print(od)

print(od.keys())

 

有序字典能够记录元素插入的顺序,打印的时候也是按照这个顺序输出打印。

应用的用途:

假如使用字典记录了N个产品,这些产品使用ID由小到大加入到字典中

 除了使用字典检索的遍历,有时候须要取出ID,可是但愿是按照输入的顺序,由于输入顺序是有序的

不然还须要从新把遍历到的值排序

相关文章
相关标签/搜索