python数据结构3-字典

目录

一、定义

二、初始化

三、字典元素访问

四、字典修改

五、字典删除

六、字典遍历

1. 遍历key

2. 遍历value

3. 字典遍历

一、定义

key-value键值对的数据的集合

可变的、无序的、key不重复

二、初始化

1. d = dict() 或者 d = {}

2. dict(**kwargs)

    使用name=value对初始化一个字典

示例:d = dict(a=1,b=2)

3. dict(iterable, **kwarg)

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

示例:d = dict(((1,'a'),(2,'b'))) 或者 d = dict(([1,'a'],[2,'b']))

4. dict(mapping, **kwarg)

    使用一个字典构建另一个字典

示例:c = dict(d,t=3)

value值可以是数字、字符串、None、字典等

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

类方法dict.fromkeys(iterable, value) 批量定义字典key,value值

示例:

d = dict.fromkeys(range(5))

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

三、字典元素访问

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

       key不存在抛出KeyError异常

get(key[, default])  返回key对应的值value

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

setdefault(key[, default])  返回key对应的值value  

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

示例:

c.setdefault('e',12)

c.setdefault('f')

python数据结构3-字典_第1张图片

四、字典修改

1. d[key] = value  将key对应的值修改为value ,key不存在添加新的kv对

2. update([other]) -> None   使用另一个字典的kv对更新本字典

  • key不存在,就添加
  • key存在,覆盖已经存在的key对应的值
  • 就地修改

示例:

d.update(red=1)

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

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

d.update(c)

python数据结构3-字典_第2张图片

五、字典删除

1. pop(key[, default] key存在,移除它,并返回它的value,key不存在,返回给定的default , default未设置,key不存在则抛出KeyError异常

2. popitem() 移除并返回一个任意的键值对,字典为空时,抛出KeyError异常

3. clear() 清空字典

4. del语句(用的少)

del a['c'] 看着像删除了一个对象,本质上减少了一个对象的引用,del 实际上删除的是名称(标识符),而不是对象,内存地址还在(引用计数删掉了)

六、字典遍历

for ... in dict

1. 遍历key

for k in d:

     print(k)

for k in d.keys():

     print(k)

2. 遍历value

for k in d:

    print(d[k])

for k in d:

    print(d.get(k))

for v in d.values():

    print(v)

3. 字典遍历

for ... in dict

遍历item,即kv对

for item in d.items():

     print(item)

for item in d.items():

     print(item[0], item[1])

for k,v in d.items():

     print(k, v)

for k, _ in d.items():

     print(k)

for _ ,v in d.items():

     print(v)

遍历总结

keys、values、items方法返回一个类似一个生成器的可迭代对象,不会把函数的返回结果复制到内存中

实际使用去重的场景中,主要用key,或者用set

只用values的话可以直接用列表

字典的key总结

set的元素可以就是看做key,set可以看做dict的简化版

hashable 可哈希才可以作为key,可以使用hash()测试

示例:

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

你可能感兴趣的:(Python,python,数据结构)