python3内建模块-dict类

1、介绍

builtins.py文件中定义了dict类,用于处理python中字典数据。

list也是python的基本数据类型之一。

2、类

class dict(object):
    def __init__(self, seq=None, **kwargs):
        pass

3、字面量初始化

  • 键必须是number、str和tuple这几种不可变类型,值可以是任意类型
  • 相同的键只会存在一个有效,默认是后添加或声明会覆盖前者
a = {}
a1 = {12:"abc", "zz":[12,22]}

4、类初始化

b = dict()
b1 = dict([["a",12], {"b",22}, ("c",33)])
print(b1) #{'a': 12, 'b': 22, 'c': 33}

b2 = dict(a=12, b=22, c=33)
print(b2) #{'a': 12, 'b': 22, 'c': 33}

5、属性

6、方法

(1)update

update(self, __m, kwargs)
  • 更新dict,如果键已经存在即更新,如果不存在则追加
d = {"a":12,"c":"15","b":"zf"}
print(d)# {'a': 12, 'c': '15', 'b': 'zf'}
d.update({"c":22,"d":"gg"})
print(d)# {'a': 12, 'c': 22, 'b': 'zf', 'd': 'gg'}

(2)get

get(self, key)
  • key为必要参数,返回键对应的值
  • 如果没有键,则返回None
  • 隐藏的第二个参数,default可以用于设置当没有键时返回的值

(3)pop

pop(self, key)
  • key为必要参数,返回键对应的值,并在dict中删除该键值对
  • 如果没有该键,则报错:KeyError: ‘bc’
  • 隐藏的第二个参数,default可以用于设置当没有键时返回的值

(4)copy

copy(self)
  • 返回克隆对象,浅复制
  • 对原dict的键进行值的克隆,对值进行地址克隆
  • 对原dict直接进行元素的增删,以及改变键的内容或者改变值的对象,不影响克隆对象
  • 但是直接对原dict的值的内部进行操作,会改变克隆对象
d = {"a":12,"c":[1,2],"b":"zf"}
d2 = d.copy()
d.get("c")[0]=55
print(d) # {'a': 12, 'c': [55, 2], 'b': 'zf'}
print(d2) # {'a': 12, 'c': [55, 2], 'b': 'zf'}

(5)clear

clear(self)
  • 清除

(6)items

items(self)<class 'dict_items'>
  • 返回类型是<class ‘dict_items’>
  • 获取的是字典的键值对
d = {"a":12,"c":[1,2],"b":"zf"}
print(d.items()) # [('a', 12), ('c', [1, 2]), ('b', 'zf')]

(7)keys

keys(self)

d = {"a":12,"c":[1,2],"b":"zf"}
print(type(d.keys())) # <class 'dict_keys'>
print(d.keys()) # ['a', 'c', 'b']
  • 获取字典的键

(8)values

values(self)

d = {"a":12,"c":[1,2],"b":"zf"}
print(type(d.values())) # <class 'dict_values'>
print(d.values()) #[12, [1, 2], 'zf']
  • 获取字典的值

(9)popitem

popitem(self)

d = {"a":12,"c":[1,2],"b":"zf"}
print(d.popitem()) # ('b', 'zf')
print(d) # {'a': 12, 'c': [1, 2]}
  • 获取最后一项键值对,类型是tuple
  • 并将其从dict中移除

(10)setdefault

setdefault(self, __key, __default=None)

d = {"a":12,"c":[1,2],"b":"zf"}
print(d.setdefault("c","gg"))#[1, 2]
print(d)#{'a': 12, 'c': [1, 2], 'b': 'zf'}
print(d.setdefault("d","gg"))#gg
print(d)#{'a': 12, 'c': [1, 2], 'b': 'zf', 'd': 'gg'}
  • 如果__key在dict中存在,返回__key在dict中作为键对应的值,不对dict做任何动作
  • 如果__key在dict中不存在,对dict增加{__key:__default},并返回__default
  • __default为非必要参数,默认值为None

(11)fromkeys

fromkeys(self, __iterable)

d = {"a":12,"c":[1,2],"b":"zf"}
print(d.fromkeys([12,22],0)) #{12: 0, 22: 0}
print(d)#{'a': 12, 'c': [1, 2], 'b': 'zf'}
  • 该方法与调用对象无关,用于创建一个dcit返回,键是第一个迭代器参数的元素,各键的值都为第二个参数
posted @ 2023-07-11 13:37  挖洞404  阅读(6)  评论(0编辑  收藏  举报