python之字典(dict)

字典(dict)

初识字典

字典是一系列键值对。每个键都与一个值相关联,通过键来访问相关联的值。(字典用花括号{ }中的一系列键值对表示)

alien_0 = {'color':'green','points':5}
print(alien_0['color']) #-->结果是green

键可以是数、字符串、列表和字典。

键与值之间采用冒号分隔,键值对之间采用逗号分隔。

访问字典中的值

通过来访问与键相关的值。

alien_0 = {'color':'green','points':5}
print(f"You just earnd {alien_0['color']} points!")

添加键值对/修改键值对

字典是一种动态结构,可随时再其中添加键值对,通过指定字典名、方括号括起来的键和相关联的值

同理在修改键值对的值时:可通过键来改变与键相关的值。

alien_0 = {'color':'green','points':5}
alien_0['x'] = 0
alien_0['y'] = 25
print(alien_0)

在python3.7中,字典元素的排列顺序与定义时相同。将字典打印出来,发现元素的排列顺序与添加顺序相同。

删除键值对

可使用del 语句将对应的键值对彻底删除。使用del删除键值对时,必须指定字典名和要删除的键

alien_0 = {'color':'green','points':5}
del alien_0['color']
print(alien_0)

访问值

使用get()在指定的键不存在时返回一个默认值,从而避免用键访问导致的键值错误。(KeyError)

方法get有两个参数,第一个参数填写的是键,第二个参数填写的是返回的值。

注:当没有填写第二个值时,返回值为None。(表示不存在的特殊值)

alien_0 = {'color':'green','points':5}
point_value = alien_0.get{'points'}#返回值为5
del alien_0['color']
point_value01 = alien_0.get{'color'}#返回值为None
point_value02 = alien_0.get{'color','No point value assigned.'}#返回第二个参数

便历字典

  • 便历所有键值对

通过调用items()方法,返回一个键值对列表

user_0 = {
    'username':'edermi',
    'first':'enrico',
    'last':'fermi',
}
for k,v in user_0.items():
    print(f"Key = {k}, Value = {V}")
  • 便历字典中的所有键

通过调用keys()方法,返回一个键列表(不调用方法默认也为调用所有键)

user_0 = {
    'username':'edermi',
    'first':'enrico',
    'last':'fermi',
}
for k in user_0.keys(): # <=> for k in user_0
    print(f"Key = {k}") # 输出username、first、last
  • 便历字典中的所有值

通过调用values()方法,返回一个值列表

user_0 = {
    'username':'edermi',
    'first':'enrico',
    'last':'fermi',
}
for v in user_0.values():
    print(f"Value = {V}") # 输出edermi、enrico、fermi
提取字典中所有的值,没有考虑值是否重复,剔除重复项可以采用集合(set)。

直接调用set()方法,返回一个不重复的列表。

注: 也可以使用花括号直接创建集合,采用逗号分隔元素。

languages = {'python','ruby','C','Java'}

嵌套

  • 字典存储在列表中
Host01 = {'Dog':'Tony'}
Host02 = {'Cat':'Alice'}
Host03 = {'Pig':'Kitty'}
Pets = [Host01, Host02, Host03]
print(Pets)
  • 列表作为值存储在字典中
favorite_number = {
    'Alice':[5,2],
    'Tom':[25],
    'Jack':[5,6]
}
for k,v in favorite_number.items():
    print(k,v)

列表和字典的嵌套层级不能太多,如果嵌套层级太多证明你该换个更简单的解决方案。

  • 将字典存储在字典中
 users = {
 	'aeinstein': {
 		'first': 'albert',
 		'last': 'einstein',
 		'location': 'princeton',
		 },
	 'mcurie': {
		 'first': 'marie',
 		'last': 'curie',
 		'location': 'paris',
		 },
 }
for username, user_info in users.items():
	print(f"\nUsername: {username}")
	full_name = f"{user_info['first']} {user_info['last']}"
    location = user_info['location']
    
	print(f"\tFull name: {full_name.title()}")
	print(f"\tLocation: {location.title()}")

通过一层循环访问users的键值对,再通过返回的dict来访问first、last、location。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值