1、遍历字典:
(1)字典是以“键-值对”的形式存储数据的,所以需要通过这些“间-值对”进行获取。Python提供了遍历字典的方法,通过遍历可以获取字典中的全部“键-值对”。使用字典对象的item()方法可以获取字典得“键-值对”列表,语法格式如下:
dictionary.items()
#dictionary为字典对象;返回值为可遍历的(键-值对)的元组列表。
dictionary={'qq':'123456','姓名':'张三','联系电话':'123456789'} for i in dictionary.items(): print(i)
(2)想要获取具体的每个键或值。
dictionary={'qq':'123456','wechat':'456789','phone':'123456789'}
for key,value in dictionary.items(): print(key,"的联系电话是:",value)
再Python中还可以使用keys()方法和values()方法,用于返回字典的“键”和“值”列表,它们的使用方法同items()方法类似,也需要通过for()循环遍历字典列表,获取相应的键和值。
4.4.4 添加、修改和删除字典元素
(1)添加字典元素
由于字典是可变序列,所以可以随时在字典中添加“键-值对”。向字典中添加元素的语法格式如下:
dictionary[key]=value
dictionary:表示字典名称
key:表示要添加元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组。
value:表示元素的值,可以是任何数据类型,不是必须唯一的。
dictionary=dict(qq='123',wechat='456',phone='123456') dictionary["watch"]="000000" print(dictionary)
(2)修改字典元素
在字典中,“键”必须是唯一的,如果新添加的”键“与已经存在的”键“重复,那么将使用新的”值“替换原来该”键“的值,相当于修改字典的元素。
dictionary={'qq'='123','wechat'='456','phone'='123456'} print("原字典:",dictionary) dictionary["phone"]="000000" print("新字典:",dictionary)
(3)删除字典元素
当字典中的某一个元素不需要时,使用del命令将其删除。
dictionary=dict(qq='123',wechat='456',phone='123456') print("原字典:",dictionary) del dictionary["phone"] print("新字典:",dictionary)
当删除一个不存的键时,会抛出异常,此时使用判断条件进行删除。
dictionary=dict(qq='123',wechat='456',phone='123456') print("原字典:",dictionary) if "phone" in dictionary: del dictionary["phone"] print("新字典:",dictionary) else: print("不存在这个键")
4.4.5 字典推导式
使用字典推导式可以快速生成一个字典。
(1)生成一个包含四个随机数的字典。
import random randomdict={i:random.randint(10,100) for i in range(1,5)} for j in randomdict.items(): print(j)
(2)使用字典推导式实现根据名字和联系方式创建一个字典。
name=["qq","wechat","phone"] tel=["123","456","123456"] dictionary={name:tel+"号码" for name,tel in zip(name,tel)} print(dictionary)
4.5 集合
Python中的集合同数学中的集合概念类似,用于保存不重复元素。有可变集合(set)和不可变集合(frozenset)两种。
在形式上,集合的所有元素都放在一对”{ }“中,两个相邻元素间使用”,“分隔。
4.5.1 集合的创建
在Python中,创建set集合也可以向列表、元组和字典一样,直接将集合赋值给变量从而实现创建集合,即直接使用”{ }“创建。
setname={element1,element2,element3...}
setname:表示集合的名称,可以是任何符合Python命名规则的标识符。
element1,element2,element3:表示集合中的元素,个数没有限制,只要是Python支持的数据类型就可以。
在创建集合时,如果输入了重复的元素,Python会自动只保留一个。
set1={'水平','双鱼','射手'} set2={6,4,7,1,8} set3={'Python',28,('人生苦短,我用Python')}
print(set1)
print(set2)
print(set3)
由于Python中的set集合是无序的,所以每次输出时元素的排列顺序可能都不相同。
1、使用set()函数创建
在Python中可以使用set()函数将列表、元组等其他可迭代对象转换为集合。set()函数的语法格式如下。
setname=set(iteration)
setname:表示集合名称
iteration:表示要转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串,如果是字符串,返回的集合将是包含全部不重复字符的集合。
set1=set("请努力学习,加油") set2=set([2.333,3.14,8.32]) set3=set(('人生苦短','我用Python')) print(set1) print(set2) print(set3)
在创建集合时,如果出现了重复元素,那么将只保留一个。
在创建空集合时,只能使用set()实现,而不能使用一对”{ }“实现,因为在Python中,直接使用一对”{ }“表示创建一个空字典。
2、使用set()函数创建保存学生选课信息的集合。
Python=set(['小红','小明','小刚']) C=set(['大红','大明','大刚']) print("选择python的人有:",Python) print("选择c的人有:",C)
在Python中,创建集合推荐采用set()函数实现。
4.5.2 集合的创建和删除
集合是可变序列,可以实现对其添加或者删除元素。
1、向集合中添加元素:
向集合中添加元素可以使用add()方法实现,语法格式如下:
setname.add(element)
setname:表示要添加元素的集合
element:表示要添加的元素内容,只能使用字符串、数字及布尔类型的True或者False等,不能使用列表、元组等可迭代对象。
course=set(['Linux','Java','Go','Shell']) print("此时的课程有:",course) course.add("Python") print("现在的课程有:",course)
2、从集合中删除元素
在Python中,可以使用del命令删除整个集合,也可以使用集合的pop()方法或者remove()方法删除一个元素,或者使用集合对象的clear()方法清空集合,即删除集合中的全部元素,使其变为空集合。
course=set(['Linux','Java','Go','Shell','Python','Zabbix','Docker']) print("现在存在的所有集合元素:",course) course.remove("Zabbix") print("使用remove()方法移除指定元素:",course) course.pop() print("使用pop()方法随机删除一个元素:",course) course.clear() print("使用clear()方法清空集合:",course)
4.5.3 集合的交集、并集和差集运算
集合最常用的操作就是进行交集、并集、差集和对称差集运算。
交集运算符 &
并集运算符 |
差集运算符 -
对称差集运算符 ^
1、统计学生选课,需要知道哪些学生选择了Python没有选择C语言,需要知道那些学生既选择了Python又选择了C语言以及选课的全部学生。
Python=set(['小红','小明','小刚','小王']) C=set(['小黄','小花','小红','小东']) print("选择Python的人有:",Python) print("选择C的人有:",C) print("并集运算:",Python | C) #所有选课的学生 print("交集运算:",Python & C) #既选择Python又选择C的学生 print("差集运算:",Python - C) #选择Python没有选择C的学生
4.6 列表、元组、字典和集合的区别
1、列表、元组、字典和集合的区别:
数据结构 是否可变 是否重复 是否有序 定义符号
列表(list) 可变 可重复 有序 [ ]
元组(tuple) 不可变 可重复 有序 ()
字典(dictionary) 可变 可重复 无序 {key:value}
集合(set) 可变 不可重复 无序 { }