Python字典

概念

键值对 方式存储数据

列表和字典都是可变序列(可对内部进行增删改查)

不同元素的输入先后并不能决定最终存储先后,具体存储是由哈希函数返回值决定的

张三是,100是
在这里插入图片描述
在这里插入图片描述

字典特点

  • 所有元素都是一个key-value对,key不能重复(key一旦重复,后面的值会覆盖掉前面的值),但是值可以重复。
print('---------覆盖同一个键--------------')
dic={"name":'mike',"name":'jack'}
print(dic)

在这里插入图片描述

  • 字典元素无序
  • 字典中的键必须是不可变对象,例如list就不能做key,key是字典中最关键的东西
  • 字典可以根据需要动态伸缩
  • 字典会浪费较大内存,属于是用空间换时间

创建

  • 基本方法:使用大括号
    scores={'张三':100,'李四':200,'王五':300,}

  • 内置函数dict()
    dict(name='mike',age=20),存储结果和上面一样:键值对(键:name和age;值:mike和20)
    在这里插入图片描述

  • 空字典
    d={}即可创建一个名为d的空字典

字典生成式

dict={name:age for name,age in zip(name,age)}
类似列表表达式,zip压缩两个列表,多次赋给变量name,age,前面name:age是键值对。

若两个列表长度不同,则以的为个数

name=['mike','jack','sky','peter']			#创建两个可迭代对象
age=[20,19,18,17]
d={key:val for key,val in zip(name,age)}			
print(d)

#将列表name和age一一对应,放进变量key,val中,再赋给键值对 key:val

在这里插入图片描述
也可以在key后面加上upper()使key变成大写

name=['mike','jack','sky','peter']
age=[20,19,18,17]
d={key.upper():val  for key,val in zip(name,age)}
print(d)

在这里插入图片描述

获取字典元素

直接获取

print(s['name'])

输出:mike
找不到,则直接报错

用get()获取键对应的:值

切记:字典中存储结构是键值对,且要用引号包起来:

print(s.get('name'))

输出:mike

找不到,则返回None

当然,我们还可以设定:如果找不到,返回自定义的值:

print(s.get('n','找不到'))

在这里插入图片描述

判断字典中有没有键(key)

切记,键要用引号包起来

print('name' in s)

输出:True

当然还有not in语句同样用法

删除键

print(s)
del s['name']
print(s)

删除name键值对
在这里插入图片描述

清空字典

删除字典所有键值对

print(s)
s.clear()
print(s)

在这里插入图片描述

增添,修改字典元素

s['sexy']='female'
使用赋值语句,对
添加时key也要用单引号包起来

若字典中没有这个,则增加进字典
若字典中存在这个,则覆盖掉原有值

print(s)
s['sexy']='female';         #增加sexy
print(s)
s['sexy']='male';           #修改sexy
print(s)

在这里插入图片描述

获取字典内的值

获取字典中所有的键值对

  • s.keys() 获取所有key
keyword=s.keys()
print(keyword)

输出:dict_keys(['name', 'age'])
  • s.values() 获取所有value
val=s.values()
print(val)

输出:dict_values(['mike', 20])
  • s.items() 获取所有key,value对
item=s.items()
print(item)

输出:dict_items([('name', 'mike'), ('age', 20)])

以上操作返回的对象都可以进行列表化:

print(list(item))

每个红框被称为 “元组”
在这里插入图片描述

遍历字典

for 变量  in  字典:
	print(变量)			#输出字典的键
	print(scores[变量])		#输出字典的值

只能直接找到key,val需要进一步get或者[ ]

输出字典的键,值(两种方法)

for i in s:
    print(i ,s.get(i),s[i])       #输出键,值,值

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值