coker

python字典:
字典是一种可变容器模型,且可存储任意类型对象
查找速度快(以空间换时间)


字典键的特性:
1.字典值可以取任何Python对象,但键不行
2.同一个键如果出现两次,那后一个值会覆盖前一个值
d = {\'name\':\'小明\',\'name\':\'小王\'}
print(d[\'name\'])
---console---
小王

3.字典键为不可变类型,可以用str,int,bool,tuple,但一般用str或者int
d = {[\'list\']:18}
print(d)
---console---
Traceback (most recent call last):
File "D:/xxxx/demo01.py", line 26, in
d = {[\'list\']:18,{\'a\'}:20}
TypeError: unhashable type: \'list\'


字典创建
d1 = {\'name\':\'张三\',\'age\':18}
d2 = dict(name=\'张三\',age=18)
d3 = dict(((\'name\',\'张三\'),(\'age\',18)))
d4 = dict(zip([\'name\',\'age\'],[\'张三\',18]))
d5 = dict(zip((\'name\',\'age\'),(\'张三\',18)))
d6 = dict({\'name\':\'张三\', \'age\':18})
print(d1)
print(d2)
print(d3)
print(d4)
print(d5)
print(d6)
print(d1 == d2 == d3 == d4 == d5 == d6)
---console---
{\'name\': \'张三\', \'age\': 18}
{\'name\': \'张三\', \'age\': 18}
{\'name\': \'张三\', \'age\': 18}
{\'name\': \'张三\', \'age\': 18}
{\'name\': \'张三\', \'age\': 18}
{\'name\': \'张三\', \'age\': 18}
True


1.增
d1 = {\'name\':\'张三\',\'age\':18}
d1[\'sex\'] = \'男\' # 没有键值对,添加
d1[\'age\'] = \'20\' # 覆盖
如果键不存在于字典中,将会添加键并将值设为默认值
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
d1.setdefault(\'address\',\'上海\')
print(d1)
---console---
{\'name\': \'张三\', \'age\': \'20\', \'sex\': \'男\', \'address\': \'上海\'}


2.删
d2 = {\'name\': \'张三\', \'age\': \'20\', \'sex\': \'男\', \'address\': \'上海\'}
有返回值,按键删除
k = d2.pop(\'name\')
print(k)
print(d2)
---console---
张三
{\'age\': \'20\', \'sex\': \'男\', \'address\': \'上海\'}

有返回值,按键去删除,没有该键,返回设置的值
k1 = d2.pop(\'hobby\',\'没有此键\')
print(k1)
print(d2)
---console---
没有此键
{\'name\': \'张三\', \'age\': \'20\', \'sex\': \'男\', \'address\': \'上海\'}

默认删除最后一个键值对,并以元组形式返回
k2 = d2.popitem()
print(k2)
print(d2)
---console---
(\'address\', \'上海\')
{\'name\': \'张三\', \'age\': \'20\', \'sex\': \'男\'}

清空键值对
d2.clear()
print(d2)
---console---
{}

删除字典
del d2
print(d2)
---console---
Traceback (most recent call last):
File "D:/xxxx/demo01.py", line 72, in
print(d2)
NameError: name \'d2\' is not defined


3.改(修改键值不赘述)
字典更新update
d3 = {\'name\': \'张三\', \'age\': \'20\'}
d4 = {\'sex\': \'男\', \'address\': \'上海\'}
有相同键,就覆盖键值
d3.update(d4)
print(d3)
---console---
{\'name\': \'张三\', \'age\': \'20\', \'sex\': \'男\', \'address\': \'上海\'}


4.查
d5 = {\'name\': \'张三\', \'age\': \'20\'}
print(d5.keys()) 获取键
print(d5.values()) 获取值
print(d5.items()) 获取键和值
---console---
dict_keys([\'name\', \'age\'])
dict_values([\'张三\', \'20\'])
dict_items([(\'name\', \'张三\'), (\'age\', \'20\')])

get()存在键,不报错,不存在键,则返回None
print(d5.get(\'name\'))
print(d5[\'name\'])
---console---
None
Traceback (most recent call last):
File "D:/xxxx/demo01.py", line 85, in
print(d5[\'sex\'])
KeyError: \'sex\'

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2021-05-27
  • 2022-01-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案