python基础05 字典

1、字典的作用

如果需要同时保存多个意义相同的数据就使用列表,如果需要同时保存多个意义不同的数据就使用字典

案例:定义一个变量保存一个学生的信息(姓名、年龄、姓名、性别、身高、体重、成绩)

stu = {'name':'小明','sex':'男','age':'30','height':'170','weight':'60','分数':'50'}
print(stu['name'])

2、什么是字典

1)字典是容器型数据类型;将{}作为容器的标志,里面多个键值对用逗号隔开:{键1:值1,键2:值2,…}

2)字典是可变的(支持增删改);字典是无序的(顺序不影响结果;不支持下标操作)

3)字典的元素:字典的元素只能是键值对,键(对值进行区分和说明):键必须是不可变类型的数据;键是唯一,值没有要求

2.1 空字典

dict1 = {}

2.2 字典是无序的

print({'a':10,'c':20,'b':5} == {'c':20,'b':5,'a':10})

2.3 字典的键必须是不可变类型的数据

不可变类型数据:数字、字符串、布尔、空值、元组

dict2 = {'a':10,1:20,True:20}  #报错

2.4 键是唯一的

dict3 = {'a':10,'c':20,'b':5,'a':20}
print(dict3)

3、查字典

字典的查是获取字典的值

3.1 查单个

获取字典中某个键对应的值

  • 字典[键] -获取字典中指定键对应的值,如果不存在程序报错
  • 字典.get(键) -获取字典中指定键对应的值,如果不存在返回None
  • 字典.get(键,默认值) -获取字典中指定键对应的值,如果不存在返回默认值
dog = {'name':'旺财','age':3,'weight':20,'gender':'公','breed':'马尔济斯'}
print(dog['name'])
# print(dog['cplor']) #报错
print(dog.get('name'))
print(dog.get('color'))
print(dog.get('color','hongse'))
print(dog.get('name','xipi'))

3.2 生活中的字典

案例:定义一个变量保存一个班级的信息

4、字典的增删改

4.1 增

添加键值对

  • 字典[键] = 值 如果键不存在就在字典中添加键值对;如果键已经存在就修改字典中指定键对应的值为指定的值
dog = {'name':'财财','breed':'泰迪','age':2}
print(dog)
dog['color'] = '黄色'
print(dog)
  • 字典.setdefault(键,值) 如果键不存在就添加键值对,如果键存在就不添加也不会修改
dog.setdefault('weight',10)
print(dog)

4.2 删

  • del 字典[键] 删除字典中指定键对应的键值对
del dog['breed']
print(dog)
  • 字典.pop(键) 取走字典中指定键对应的值并且返回
result=dog.pop('age')
print(dog)
print(result)

4.3 改

  • 字典[键] = 值
dog['breed'] = '马尔济斯'
print(dog)

5、字典的相关操作

注意:python中字典不支持加法、乘法、比较大小

  • in和not in
'''
数据 in 字典     判断字典中是否存在指定数据对应的值
'''
dict1 = {'a':20,'b':10,'c':60}
print(20 in dict1)    #False
print('a' in dict1)    #True

6、字典相关函数

max、min、sorted、sum这些函数作用于字典的时候是针对字典的键进行操作的,没有现实意义!

  • len(字典) -统计字典中键值对个数
print(len(dict1))   #3
  • dict(数据) -将指定数据转换成字典
'''
数据的要求:
a、数据本身是一个序列
b、序列中的元素必须是有且只有两个元素的小序列
c、小序列中的第一个元素必须是不可变类型的数据
'''
print(dict([('a',10),('b',20),('c',30)]))
data1=['ab','cd','12']
print(dict(data1))
# data2=[10,20,30,40]
# print(dict(data2))   #报错

注意:将字典转换成别的序列的时候,是将字典的键作为新序列中的元素

dict1 = {'a':20,'b':10,'c':60}
print(list(dict1))

7、字典相关方法

字典.xxx()

  • 字典.clear()
#清空字典
dog = {'name':'财财','breed':'泰迪','age':2}
dog.clear()
print(dog)
  • 字典.copy()
#复制字典常见一个一模一样的新字典并且返回
dog2 = dog.copy()
print(dog2)
  • 字典.keys()
#获取字典所有的键,返回一个新序列
print(dog.keys())      #dict_keys(['name', 'breed', 'age'])
  • 字典.values()
#获取字典所有的值,返回一个新的序列
print(dog.values())    #dict_values(['财财', '泰迪', 2])
  • 字典.items()
#将字典的所有键值对转换成元组,返回一个新的序列
print(dog.items())     #dict_items([('name', '财财'), ('breed', '泰迪'), ('age', 2)])
  • 字典1.update(字典2)
#将字典2中所有的键值对都添加到字典1中
dog1 = {'name':'财财','breed':'泰迪','age':2}
print(dog1)
dog2 = {'name':'贝贝','breed':'马尔济斯','age':2}
dog1.update(dog2)
print(dog1)

8、字典的推导式

'''
结构1:{表达式1:表达式2 for 变量 in 序列}
'''
resault = {x: x*2 for x in range(5)}
print(resault)
#{0: 0, 1: 2, 2: 4, 3: 6, 4: 8}
dict1 = {'a': 10, 'b': 20, 'c': 30}
resault={dict1[x]:x for x in dict1}
print(resault)
#{10: 'a', 20: 'b', 30: 'c'}
#遍历字典,遍历依次取到的是字典所有的键
for x in dict1:
	print(x,dict1[x])
'''
结构2:
{表达式1:表达式2 for 变量 in 序列 if 条件语句}
'''

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python字典是一种无序的键值对集合,其中每个键都唯一对应一个值。字典用花括号{}表示,键和值之间用冒号:分隔,不同的键值对之间用逗号,分隔。例如: ``` my_dict = {'apple': 2.5, 'banana': 1.5, 'orange': 3.0} ``` 这个字典包含三个键值对,分别是'apple': 2.5, 'banana': 1.5和'orange': 3.0。可以通过键来访问字典中的值,例如: ``` print(my_dict['apple']) # 输出2.5 ``` 如果尝试访问字典中不存在的键,则会报KeyError错误。可以使用in关键字来检查一个键是否在字典中,例如: ``` if 'apple' in my_dict: print('Yes') else: print('No') ``` 可以使用字典的get方法来访问键对应的值,如果键不存在,则返回默认值(默认为None),例如: ``` print(my_dict.get('apple', 0)) # 输出2.5 print(my_dict.get('pear', 0)) # 输出0 ``` 可以使用字典的items方法来遍历所有的键值对,例如: ``` for key, value in my_dict.items(): print(key, value) ``` 可以使用字典的keys方法来遍历所有的键,例如: ``` for key in my_dict.keys(): print(key) ``` 可以使用字典的values方法来遍历所有的值,例如: ``` for value in my_dict.values(): print(value) ``` 可以使用字典的pop方法来删除一个键值对,例如: ``` my_dict.pop('apple') print(my_dict) # 输出{'banana': 1.5, 'orange': 3.0} ``` 可以使用字典的clear方法来清空所有的键值对,例如: ``` my_dict.clear() print(my_dict) # 输出{} ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值