字典

字典:反映对应关系的映射类型,字典是包含若干“键:值”元素的无序可变序列,表示一种映射和对应关系,也称为关联数组

一、字典中的键值:

1.键值对之间用冒号分隔,所有元素放在{ }里

2.字典中元素的键是任意的不可变序列,例如整数、复数、实数、字符串、元组等类型,
不能使用列表、集合、字典等可变数据类型

3.字典中的键不允许重复,值是可以重复的

二、字典的创建与删除

创建1:

x = dict()  # 用内置dict方式创建空字典

创建2

x = {}   #直接创建字典

创建3

keys = ["a","b","c","d"]   # 变量可以是列表、也可以是元组,集合
values = [1,2,3,4]
d = dict(zip(keys,values)) # 根据已有数据创建字典

out:{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}

创建4

  d = dict(name = 'zhang',age = 20)  # 以关键参数形式创建字典
out:{'name': 'zhang', 'age': 20}

字典推导式创建字典

d = {i:str(i) for i in range(1,5)}

out:{1: '1', 2: '2', 3: '3', 4: '4'}

三、字典元素的访问

字典中的每个元素表示一种映射关系和对应关系,根据字典中的“键”作为下标可以访问对应的值

直接以访问键的形式,访问字典的值

    a = {'name':'zhang','age':20,'sex':'man'}
    a["age"]# 当访问的键存在时,返回键对应的值
    #Out: 20
    a["score"] ` # 当访问的键不存在时,抛出异常
    #out:KeyError: 'score'
    
    a.keys()# 返回字典中的所有键
    out:dict_keys(['name', 'age', 'sex'])

    a.values()  # 返回字典中的所有值
    out:dict_values(['zhang', 20, 'man'])

为避免键不存在抛出异常,可使用if语句,或者是异常处理结构

a = {'name':'zhang','age':20,'sex':'man'}
if 'score' in a:
    print(a["score"])
else:
    print("Not Exists")

out:Not Exists

异常处理结构

a = {'name':'zhang','age':20,'sex':'man'}
try:
	   print(a['score'])
except:
	 print("Not Exists")

# out:Not Exists

利用get方法获取指定‘键’对应的值,并且允许指定该‘键’不存在时返回特定的‘值’。

a = {'name':'zhang','age':20,'sex':'man'}
a.get("age")
#out:20

a.get('score',98)  # 键不存在时返回指定的值
out:98

a.get('age',98)
#out:20

遍历字典中的键

for i in a:   # 默认遍历键
    print(i,end=' ')
#out:name age sex

遍历字典中的值

for i in a.values():
    print(i, end=' ')
#out:zhang 20 man

遍历字典中的键值对(元素),以元组的形式返回

for i in a.items():
    print(i, end=' ')
#out:('name', 'zhang') ('age', 20) ('sex', 'man')

四、字典元素的添加、修改与删除

当以键为下标为字典元素赋值时:

1.若该键存在,则表示修改该键对应的值

a = {'name':'zhang','age':20,'sex':'man'}
a["age"] = 30
print(a)
#out: {'name': 'zhang', 'age': 30, 'sex': 'man'}

2.若该键不存在,则表示添加一个新的"键:值"对,也就是一个新的元素。

a = {'name':'zhang','age':20,'sex':'man'}
a["score"] = 100
print(a)
#out:{'name': 'zhang', 'age': 30, 'sex': 'man', 'score': 100}    #新增键值对('score': 100)

setdefault():用于返回指定键对应的值,如果字典中不存在该“键”,则添加一个新元素并设置该键对应的值(默认为None)

a = {0: 1, 1: 1, 2: 1, 3: 1}
a.setdefault(4)
print(a)
#out:{0: 1, 1: 1, 2: 1, 3: 1, 4: None}

update :可以将另一个字典的“键:值”一次None性全部加到当前字典对象, 如果两个字典中的键重复,则以另一个字典中的值进行更新。

a = {'name':'zhang','age':20,'sex':'man'}
b = {'name':'chen','age':30,"score":98}
a.update(b)
print(a)
#out:{'name': 'chen', 'age': 30, 'sex': 'man', 'score': 98}

del:删除字典元素

a = {'name':'zhang','age':20,'sex':'man'}
del a["name"]
#out:{'age': 20, 'sex': 'man'}

pop(),popitem() :弹出并删除指定元素

a = {'name':'zhang','age':20,'sex':'man'}
a.pop("age")  #弹出并删除age对应的值
#out:20
print(a)
#out:{'name': 'zhang', 'sex': 'man'}  #键值对('age':20)已删除

a = {'name':'zhang','age':20,'sex':'man'}
a.popitem()
#out: ('sex', 'man')  #弹出并删除最后一个元素

clear() 清空字典内的所有元素

a = {'name':'zhang','age':20,'sex':'man'}
a.clear() 
print(a)#打印出空字典
#out:{}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值