python 字典以及内置方法

目录

1.说明

2.操作字典

1. 创建字典

2. 访问字典中的值(字典取值)

3. 更新字典

4. 删除字典

5. 循环(遍历)字典

6. 类型转换

字典内置方法


1.说明

Python 中的字典(dict)是一种无序、可变的数据类型。它是由键(key)和值(value)组成的键值对集合,每个键对应唯一的值。

说明:

a. 字典的键可以是任意的不可变类型

b. 成员资格查找时查找的是键而不是值

c. 即使键起初不存在也可以为它直接赋值,字典会自动添加新的项

d. 字典是不可修改的

2.操作字典

1. 创建字典

使用大括号 {} 来创建一个空字典,或者使用花括号 {key: value} 来创建带有初始键值对的字典。

字典的键必须是不可变类型,如字符串、数字或元组等,而键对应的值可以是任何数据类型。其中value可以是任意类型,而key则必须是不可变类型,通常key应该是str类型,因为str类型会对value有描述性的功能

empty_dict = {}
fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}

info={'name':'tony','age':18,'sex':'male'} #本质info=dict({....})

# 也可以这么定义字典
info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}

2. 访问字典中的值(字典取值)

通过键来访问字典中的值。如果键不存在,则会抛出 KeyError 异常,可以使用 get() 方法来避免这种情况。

print(fruit_dict['apple'])  # 输出 1
print(fruit_dict.get('watermelon', 0))  # 输出 0,因为 watermelon 键不存在

1.按key存取值:可存可取
# 1.1 取
dic = {
     'name': 'xxx',
     'age': 18,
     'hobbies': ['play game', 'basketball']
 }
print(dic['name'])#'xxx'
print(dic['hobbies'][1])#'basketball'
1.2 对于赋值操作,如果key原先不存在于字典,则会新增key:value
dic['gender'] = 'male'  
print(dic)#{'name': 'tony', 'age': 18, 'hobbies': ['play game', 'basketball'],'gender':'male'}
1.3 对于赋值操作,如果key原先存在于字典,则会修改对应value的值
dic['name'] = 'tony'
print(dic)#{'name': 'tony', 'age': 18, 'hobbies': ['play game', 'basketball']}

小练习:取出最后一个字典 f 的值
info = {
    'username': 'kevin',
    'addr': ['a', 'b', {'aa': 1, 'bb': 2, 'hobby': ['xijio', 'tangtou', 'hejiu', {'c': 1, 'd': 2, 'f': 'LYNB'}]}]
}
ll = info['addr'][2]['hobby'][3]['f']
print(ll)

3. 更新字典

通过键来更新字典中的值,或者使用 update() 方法来更新多个键值对。

fruit_dict['apple'] = 4  # 将 apple 的值更新为 4
fruit_dict.update({'banana': 5, 'watermelon': 6})  # 更新多个键值对

4. 删除字典

可以使用 del 关键字删除字典中的键值对,或使用 clear() 方法清空整个字典。

del fruit_dict['apple']  # 删除键为 'apple' 的键值对
fruit_dict.clear()  # 删除字典中的所有键值对

5. 循环(遍历)字典

可以使用 for 循环来遍历字典中的键值对。使用 keys() 方法来获取所有的键,使用 values() 方法来获取所有的值,使用 items() 方法来获取所有的键值对。

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
1.循环
6.1 默认遍历的是字典的key
	for key in dic:
	print(key)
"""执行结果:
age
hobbies
name
"""
6.2 只遍历key
for key in dic.keys():
	print(key)
"""执行结果:
age
hobbies
name"""
6.3 只遍历value
for key in dic.values():
	print(key)
"""执行结果:
18
['play game', 'basketball']
xxx"""
6.4 遍历key与value
for key in dic.items():
	print(key)
"""执行结果:
('age', 18)
('hobbies', ['play game', 'basketball'])
('name', 'xxx')"""

6. 类型转换

转换1: 
info=dict([['name','tony'],('age',18)])
print(info)#{'age': 18, 'name': 'tony'}

转换2:fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中
{}.fromkeys(('name','age','sex'),None)  #{'age': None, 'sex': None, 'name': None}

字典内置方法

1.clear(): 用于删除字典中的所有元素。

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
fruit_dict.clear()
print(fruit_dict)  # 输出 {}

2.copy(): 返回一个字典的浅拷贝(shallow copy)。

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
copy_fruit_dict = fruit_dict.copy()
print(copy_fruit_dict)  # 输出 {'apple': 1, 'banana': 2, 'orange': 3}

3.fromkeys(seq[, value]): 用于创建一个新字典,其中包含序列 seq 中每个元素作为键,而所有的值都设置为value。

seq = ('apple', 'banana', 'orange')
fruit_dict = dict.fromkeys(seq, 0)
print(fruit_dict)  # 输出 {'apple': 0, 'banana': 0, 'orange': 0}

4.get(key[, default]): 返回指定键的值,如果键不存在则返回默认值。

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
print(fruit_dict.get('apple', 0))  # 输出 1
print(fruit_dict.get('watermelon', 0))  # 输出 0

dic= {'k1':'jason','k2':'Tony','k3':'JY'}
dic.get('k1')	#'jason' 	 # key存在,则获取key对应的value值
res=dic.get('xxx')     # key不存在,不会报错而是默认返回None
print(res)	#None  
res=dic.get('xxx',666) # key不存在时,可以设置默认返回的值
print(res)	#666 
# ps:字典取值建议使用get方法

5.items(): 返回一个包含所有(键,值)元组的列表。获取字典所有的键值对

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
print(fruit_dict.items())  # 输出 dict_items([('apple', 1), ('banana', 2), ('orange', 3)])

6.keys(): 返回一个包含所有键的列表。获取字典所有的key

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
print(fruit_dict.keys())  # 输出 dict_keys(['apple', 'banana', 'orange'])

7.pop(key[, default]): 删除指定键,并返回对应的值。如果键不存在,则返回默认值(如果提供了)或引发 KeyError 错误。

dic= {'k1':'jason','k2':'Tony','k3':'JY'}
v = dic.pop('k2')  # 删除指定的key对应的键值对,并返回值
print(dic)#{'k1': 'jason', 'kk2': 'JY'}
print(v)#'Tony'

8.popitem(): 随机删除并返回一个(键,值)对元组。

dic= {'k1':'jason','k2':'Tony','k3':'JY'}
item = dic.popitem()  # 随机删除一组键值对,并将删除的键值放到元组内返回
print(dic)#{'k3': 'JY', 'k2': 'Tony'}
print(item)#('k1', 'jason')

9.setdefault(key[, default]): 如果键存在,则返回其值,否则将键插入字典并返回默认值(如果提供了)或 None。

1.key不存在则新增键值对,并将新增的value返回
dic={'k1':111,'k2':222}
res=dic.setdefault('k3',333)
print(res)#	333
print(dic) # 字典中新增了键值对   #{'k1': 111, 'k3': 333, 'k2': 222}

2.key存在则不做任何修改,并返回已存在key对应的value值
dic={'k1':111,'k2':222}
res=dic.setdefault('k1',666)
print(res)#111
dic # 字典不变		#{'k1': 111, 'k2': 222}

10.update([other]): 更新字典,以其他字典或键-值对序列(iterable)中的键值覆盖当前字典中的相应值。

fruit_dict = {'apple': 1, 'banana': 2}
fruit_dict.update({'orange': 3, 'watermelon': 4})# 用新字典更新旧字典,有则修改,无则添加
print(fruit_dict)  # 输出 {'apple': 1, 'banana': 2, 'orange': 3, 'watermelon': 4}

11.values(): 返回一个包含所有值的列表。获取字典所有的value

fruit_dict = {'apple': 1, 'banana': 2, 'orange': 3}
print(fruit_dict.values())  # 输出 dict_values([1, 2, 3])

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王献运

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值