Python数据类型之字典

隐身守侯 提交于 2019-11-29 14:01:58

基本数据类型

八大数据类型:
整型(int),浮点型(float),字符串(str),列表(list),元组(tuple),字典(dict),集合(set),布尔(bool)

  • 数值类型(整数,浮点,布尔)
  • 序列类型(字符串,列表,元组)
  • 散列类型(字典,集合)
  • 字节类型(b’123’)

可变序列:列表,集合,字典
不可变序列:字符串,元组

一.认识字典

1、概念

key-value形式,称之为键值对,把这样的数据结构称之为字典

my_dict = {}
my_dict = dict()
my_dict = {key1: value1, key2: value2,..., keyn: valuen}

2、特点

  • 存放多个数据,无序
  • 存放多种类型数据
  • 键必须是唯一,值可以相同
  • key是字符串,整数型,元组类型,value是可变和不变都可以使用

作用:可以利用key去找value

二.字典元素的操作

1、设置默认值

d = {}
d.setdefault('name', 'python')
print(d)  # {'name': 'python'}

2、查询元素

dict[key]:返回指定的key对应的value值,找不到就报错

dict.get(key):返回指定的key对应的value值,找不到就返回None

d = {'name': 'python'}
print(d['name'])  # python
print(d.get('name'))  # python
print(d.get('age'))  # None

3、修改元素

dict[key] = new_value 将指定的key的value改为new_value

d = {'name': 'python'}
d['name'] = 'java'
print(d)  # {'name': 'java'}

4、添加元素

dict[key] = value 添加指定key和value值

d = {'name': 'python'}
d['age'] = 26
print(d)  # {'name': 'python', 'age': 26}

5、删除元素

del dict[key] 根据指定key删除key:value键值对

d = {'name': 'python'}
del d['name']
print(d)  # {}

三、对字典的操作

1、删除字典

del dict 删除字典

d = {'name': 'python'}
del d
print(d)  # d未定义

2、清空字典

dict.clear() 清空字典内容

d = {'name': 'python'}
d.clear()
print(d)  # {}

3、拷贝字典

用法:dict.copy()

解释:将字典拷贝一份并返回

返回:一个新字典

d = {'name': 'python'}
new_dict = d.copy()
print(new_dict )  # {'name': 'python'}

4、取出字典的值

用法:dict.pop(key)

解释:根据key返回key对应的value值,和get()方法不同,pop()会删除字典中的keyvalue

参数:key就是要取出的key键

返回:key对应的value

d = {'name': 'python', 'age': 26}
value = d.pop('name')
print(value)  # python

5、取出字典中的键值对

用法:popitem()

解释:返回并删除字典中的最后一对键和值,如果字典已经为空,却调用了此方法,就报出
KeyError 异常

返回:取出的键值对(key, value)

d = {'name': 'python', 'age': 26}
print(d.popitem())  # ('age', 26)
print(d)  # {'name': 'python'}

6、查询字典的所有键

用法:dict.keys()

解释:将字典中所有的key作为一个“列表”并返回

返回值:dict_keys([‘a’, ‘b’])

d = {'name': 'python', 'age': 26}
print(d.keys())  # dict_keys(['name', 'age'])
# 将键转化为列表
print(list(d.keys()))  # ['name', 'age']

7、查询字典所有的值

用法:dict.values()

解释:将字典中所有的value作为一个“列表”并返回

返回值:dict_values([2, 3])

d = {'name': 'python', 'age': 26}
print(d.values())  # dict_values(['python', 26])
# 将值转化为列表
print(list(d.values()))  # ['python', 26]

8、查询字典所有的键值对

用法:dict.items()

解释:将字典中所有的 key和value(一个key和value作为一个“元组“)作为一个列表并返回

返回值:dict_items([(‘a’, 2), (‘b’, 3)])

d = {'name': 'python', 'age': 26}
print(d.items())  # dict_items([('name', 'python'), ('age', 26)])
# 将键值转化为列表
print(list(d.items()))  # [('name', 'python'), ('age', 26)]

9、对字典进行遍历

my_dict = {'name': 'python', 'age': 26}
for i in my_dict.keys():  # keys可以忽略
    print(i) # 打印所有的key值
    print(my_dict[i]) # 打印所有的value值
for key,value in my_dict.items():
    print(key)
    print(value)

10、字典推导式

d = {key: value for key, value in iterable}

11、字典合并的三种方式

用法:new_dict.update(other_dict)

解释:将other_dict的数据插入到new_dict中

返回:None

dict1 = {'name1': 'python'}
dict2 = {'name2': 'java'}
# 第一种
new_dict = dict(list(dict1.items()) + list(dict2.items()))
print(new_dict)   # {'name1': 'python', 'name2': 'java'}

# 第二种
new_dict = dict( dict1, **dict2 )
print(new_dict)  # {'name1': 'python', 'name2': 'java'}

# 第三种
my_dict = {'name1': 'mine'}
old_dict = {'name2': 'older'}
my_dict .update(old_dict)
print(my_dict )  # {'name1': 'mine', 'name2': 'older'}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!