第三章 字典与集合

引言

  1. 码字不易,如果这篇文章对您有帮助的话,希望您能点赞、收藏、加关注!您的鼓励就是我前进的动力!

一、字典

  1. 字典是一系列键值,对每个键都与一个值相关联,你可以用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。

二、字典的增删改查

(一)增:指定字典名、键和值

  1. 字典是一种动态结构。可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。
grade={'Python':100,'Chinese':90,'Java':85}
print(grade)
grade['English']=95
print(grade)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 100, 'Chinese': 90, 'Java': 85, 'English': 95}

(二)删:del语句

  1. 对于字典中不再需要的信息,可使用 del语句 将相应的键值对彻底删除。使用 del语句 时必须指定字典名和要删除的键。
grade={'Python':100,'Chinese':90,'Java':85}
print(grade)
del grade['Java']
print(grade)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 100, 'Chinese': 90}

(三)改:指定字典名、键和值

  1. 要修改字典中的值,可依次指定字典名、用方括号括起来的键,以及与该键相关联的新值。
grade={'Python':100,'Chinese':90,'Java':85}
print(grade)
grade['Java']=95
print(grade)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 100, 'Chinese': 90, 'Java': 95}

(四)查:get(), items(), keys(), values()

  1. 如果指定的键有可能不存在,应考虑使用方法 get() 而不要使用方括号表示法。调用 get() 时,如果没有指定第二个参数,且指定的键不存在python将返回None。
grade={'Python':100,'Chinese':90,'Java':85}
score=grade.get('English','This item does not exist!')
print(score)
# 输出:This item does not exist!
  1. 要编写遍历字典的for循环,可声明两个变量用于存储键值对中的键和值。注意要使用方法 items().
grade={'Python':100,'Chinese':90,'Java':85}
for key,value in grade.items():
	print(f"Key:{key}")
	print(f"Value:{value}")
# 输出:
# Key:Python
# Value:100
# Key:Chinese
# Value:90
# Key:Java
# Value:85
  1. 方法 keys() 返回字典的键。遍历字典时会默认遍历所有的键。
grade={'Python':100,'Chinese':90,'Java':85}
for key in grade.keys():
	print(f"Key:{key}")
# 输出:
# Key:Python
# Key:Chinese
# Key:Java
  1. 方法 values() 返回字典的值。
grade={'Python':100,'Chinese':90,'Java':85}
for value in grade.values():
	print(f"Value:{value}\n")
# 输出:
# Value:100
# Value:90
# Value:85

(五)其他:sorted(),

  1. 函数 sorted() 以特定的顺序对返回的键进行排序,可使用该函数来获得按特定顺序排列的键列表的副本。
grade={'Python':100,'Chinese':90,'Java':85}
for key in sorted(grade.keys()):
	print(f"Key:{key}")
# 输出:
# Key:Chinese
# Key:Java
# Key:Python
  1. 较大的字典可以放在多行中,在输入左花括号后按回车键在下一行缩进四个空格。指定第一个建值对,并在它后面加上一个逗号。之后再回车键时,文本编辑器将自动缩进后续键值对,且缩进量与第一个键值对相同。在最后一个键值对后面,也加上逗号,为以后在下一行添加键值对做好准备。
grade={
	'Python':100,
	'Chinese':90,
	'Java':85,
	}

三、集合

  1. 集合:为剔除重复项可使用集合。
  2. 集合中的每个元素,都必须是独一无二的。
  3. 创建:可使用一对花括号直接创建集合,并在其中用逗号分隔元素。
course={'Java', 'Chinese', 'math', 'math', 'english', 'History'}
print(course)
# 输出:{'Java', 'english', 'math', 'History', 'Chinese'}

四、嵌套

(一)字典列表

  1. 字典列表:存储字典的列表。
Anny={'Python':100,'Chinese':90,'Java':85}
LiMing={'Python':90,'Chinese':100,'Java':95}
Danny={'Python':89,'Chinese':95,'Java':88}
grade=[Anny,LiMing,Danny]
for score in grade:
	print(score)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 90, 'Chinese': 100, 'Java': 95}
# {'Python': 89, 'Chinese': 95, 'Java': 88}

(二)字典中存储列表

  1. 在字典中存储列表:每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
  2. 在遍历存储列表的字典的 for循环 中,我们需要再使用一个for循环来遍历与对应多个值的键值对。
grade={
	'A':'LiHua',
	'B':['Lena','Tina'],
	'C':'Daming',
	}
for stu in grade['B']:
	print(stu)
# 输出:
# Lena
# Tina

(三)字典中存储字典

  1. 在字典中存储字典。在字典中存储的字典,尽量要保持相同的结构。这样会使得嵌套的字典处理起来更加容易。
grade={
	'Anny':{
		'Python':100,
		'Chinese':90,
		'Java':85,
		},
	'LiMing':{
		'Python':90,
		'Chinese':100,
		'Java':95,
		}
}
for name,score in grade.items():
	print(f"Name:{name}")
	print(f"Python:{score['Python']},Chinese:{score['Chinese']},Java:{score['Java']}")
# 输出:
# Name:Anny
# Python:100,Chinese:90,Java:85
# Name:LiMing
# Python:90,Chinese:100,Java:95

参考资料:
[1] Eric Matthes. Python编程从入门到实践. 北京:人民邮电出版社, 2020.
[2]嵩天,礼欣,黄天羽. Python语言程序设计基础(第二版). 北京:高等教育出版社, 2017.
[3]Python语言程序设计,北京理工大学 嵩天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沉远

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值