数据类型所有方法和使用整理之------字典

print(dir(dict))

'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'

1.增加

s = {'A': 'a', 'B': 'b'}
s['C']='c'
print(s)

 

fromkeys()  使用给定的键建立新的字典,键默认对应的值为None

s = dict.fromkeys('A','B')
print(s)

{'A','B'}

或者指定默认的对应值

s= dict.fromkeys([1,2,3],'u')
print(s)

{1: 'u', 2: 'u', 3: 'u'}

 

2.删除

1.clear()  清除字典中的所有项

s = {'A': 'a', 'B': 'b'}
s.clear()
print(s)


{}

 

2.pop()  删除指定的KEY和他的值

s = {'A': 'a', 'B': 'b'}
s.pop('A')
print(s)

{ 'B': 'b'}

 

3. popitme()  随机删除一个KEY和他的值

s= dict.fromkeys([1,2,3],'u')
s.popitem()
print(s)

{2: 'u', 3: 'u'}

 

3.修改

1.常规修改

s = {'A': 'a', 'B': 'b'}
s['A']='c'
print(s)

{'A': 'c', 'B': 'b'}

2.update()  用一个字典更新另一个字典

s = {'A': 'a', 'B': 'b'}
s1 = {'A':'c'}
s.update(s1)              # 用S1更新了S中相应KEY的值
print(s)

{'A': 'c', 'B': 'b'}

 

4.查询

1.一般查询

s = {'A': 'a', 'B': 'b'}
print(s['A'])

a

 

2.get()  访问字典成员,可以访问不存在的KEY

s = {'A': 'a', 'B': 'b'}
print(s.get('A'))

a

若KEY不存在,则返回None

s = {'A': 'a', 'B': 'b'}
print(s.get('1'))

None

 

3.setdefault() 创建一个新的KEY和值,如果类表中存在,则返回这个KEY的值

s = {'A': 'a', 'B': 'b'}
s.setdefault('C','c')                #列表中不存在
print(s)

{'A': 'a', 'C': 'c', 'B': 'b'}



s = {'A': 'a', 'B': 'b'}
print(s.setdefault('A','c'))              #列表中存在

a

 

4.key() 查询字典中所有的key

s = {'A': 'a', 'B': 'b'}
print(s.keys())

dict_keys(['A', 'B'])

 

5.values()  查询字典中所有的value值

s = {'A': 'a', 'B': 'b'}
print(s.values())

dict_values(['b', 'a'])

 

5.其他

copy()  将字典复制,返回一个相同KEY的字典,但其中的值没有被独立。注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改。deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题

1copy

import copy
s = {'A': {'a':2}, 'B': 'b','C':33}
s1 = s.copy()
s2 = copy.deepcopy(s)
s['A']['a']=22

print(s)
print(s1)
print(s2)


{'A': {'a': 22}, 'B': 'b', 'C': 33}
{'A': {'a': 22}, 'B': 'b', 'C': 33}
{'A': {'a': 2}, 'B': 'b', 'C': 33}

注: 不牵扯嵌套的话,直接使用copy就等于了 赋值 或者深copy   列表和字典都一样

 

2.items()  将字典变为新的元组,单独返回。

s = {'A': 'a', 'B': 'b','C':33}
s1= s.items()
print(s1)

for key,value in s1:       # 循环取出
    print(key,value)



dict_items([('C', 33), ('A', 'a'), ('B', 'b')])
C 33
A a
B b

 

posted @ 2018-07-02 12:02  德克斯特·范  阅读(187)  评论(0编辑  收藏  举报