资源简介 (共17张PPT)第4课 元组和字典什么是元组?元组和列表的区别: (1)元组是不可变的,而列表是可以修改其中的元素的;其次,元组用圆括号来表示的,而列表是使用方括号来表示的。创建元组>>>week=("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")>>> print(week)('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')修改元组变量元组一旦创建,不能修改其元素。>>> print(week[1])Tuesday>>> week[1]="Tue"Traceback (most recent call last):File "", line 1, in week[1]="Tue"TypeError: 'tuple' object does not support item assignment但可以修改元组变量>>> week=("Mon","Tue","Wed","Thu","Fri","Sat","Sun")>>> print(week)('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')获取元组的长度使用len()方法可以获取元组的长度。>>>week=("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")>>> len(week)7查找元组中单个元素的索引>>>week=("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")>>> week.index("Friday")4数据类型转换函数list() 和tuple()list()函数可以将元组转换为列表。>>> week=list(week)>>> print(week)['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']>>> week[0]="Mon"tuple()函数可以将列表转换为元组。>>> week=tuple(week)>>> print(week)('Mon', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')什么是字典?字典是Python中的另一种数据类型,和列表一样,它也可以存储一组数据。字典和列表的区别:(1)字典可以存储任意类型的对象(2)字典可以使用其他的数据类型作为索引,形成键—值对。创建字典>>>person={"name":"Johnson","age":9,"gender":"male","height":"140cm"}>>> print(person){'name': 'Johnson', 'age': 9, 'gender': 'male', 'height': '140cm'}>>> person["name"]'Johnson'>>> person["gender"]'male'字典特性如果用字典里没有的键来访问值,Python会输出错误信息。>>> person["grade"]Traceback (most recent call last):File "", line 1, in person["grade"]KeyError: 'grade’字典中的元素是没有顺序的。>>> fruits={100:"apple",105:"banana",8:"orange"}>>> print(fruits){100: 'apple', 105: 'banana', 8: 'orange’}字典特性也可以先创建一个空字典,再逐行添加各个键—值对。字典中的键是唯一的,如果有重复的键,后面的键—值对会替换前面的键—值对。但是,值不需要是唯一的,也就是说,不同的键可以拥有相同的值。>>> person={}>>> person["name"]="Johnson">>> person["age"]=9>>> person["gender"]="male">>> person["height"]="140cm">>> print(person){'name': 'Johnson', 'age': 9, 'gender': 'male', 'height': '140cm’}>>>fruits={100:"apple",105:"banana",8:"orange",100:"cherry",200:"banana"}>>> print(fruits){100: 'cherry', 105: 'banana', 8: 'orange', 200: 'banana'}修改和新增字典中的值修改字典中的值的语法与访问字典中的值的语法类似,需要指定字典名和所要修改的值的键,再指定要和该键关联的新的值。现在要把键为“age”的值从9 修改为8,并且打印出字典person。向字典添加新的内容的方法就是增加新的键—值对。>>>person={"name":"Johnson","age":9,"gender":"male","height":"140cm"}>>> print(person){'name': 'Johnson', 'age': 9, 'gender': 'male', 'height': '140cm’}>>> person["age"]=8>>> print(person){'name': 'Johnson', 'age': 8, 'gender': 'male', 'height': '140cm’}>>> person["grade"]=3>>> print(person){'name': 'Johnson', 'age': 9, 'gender': 'male', 'height': '140cm', 'grade': 3}删除键—值对使用del语句将其删除。使用del语句时,指定字典名和要删除的键。>>>person={"name":"Johnson","age":9,"gender":"male","height":"140cm"}>>> print(person){'name': 'Johnson', 'age': 9, 'gender': 'male', 'height': '140cm’}>>> del person["age"]>>> print(person){'name': 'Johnson', 'gender': 'male', 'height': '140cm’}也可以使用字典的clear()方法,把字典中全部的键—值对都删除掉。>>> person.clear()>>> print(person){}返回指定键的值使用get语句返回指定的键所对应的值,如果该键不在字典中,则返回默认值。>>>person={"name":"Johnson","age":9,"gender":"male","height":"140cm"}>>>print(person.get("name"))Johnson>>>print(person.get("weight"))None也可以指定一个需要的默认值。>>> print (person.get("weight","unKnown"))unKnown字典转换为列表keys()、values()和 items()这3个方法可以返回类似列表的值,分别对应于字典的键、值和键—值对。>>>person={"name":"Johnson","age":9,"gender":"male","height":"140cm"}>>>person.keys()dict_keys(['name', 'age', 'gender', 'height'])>>>list1=list(person.keys())>>>list1['name', 'age', 'gender', 'height']>>>list2=list(person.values())>>>list2['Johnson', 9, 'male', '140cm']>>>list3=list(person.items())>>>list3[('name', 'Johnson'), ('age', 9), ('gender', 'male'), ('height', '140cm')]对字典的排序字典是无法排序的,但是当有排序需求时,我们就可以把字典转化成列表,把字典中的每一个键—值对转化为嵌入到列表中的两位元组,然后再进行排序等操作。>>>scoreDict={"John":82,"Christina":96,"Johnson":100,"Marry":73,"Emily":88,"Justin":92}>>> scoreList=list(scoreDict.items())>>> scoreList.sort()>>> print (scoreList)[('Christina', 96), ('Emily', 88), ('John', 82), ('Johnson', 100), ('Justin',92), ('Marry', 73)]对字典的排序sort()方法可以接受关键字为key的参数。我们可以通过将key指定为一个特殊的lambda表达式,从而指定用于排序的元素。>>> scoreList.sort(key=lambda items: items[1])>>> print(scoreList)[('Marry', 73), ('John', 82), ('Emily', 88), ('Justin', 92), ('Christina', 96),('Johnson', 100)]注意:lambda表达式用来创建匿名函数,它可以接收任意多个参数并且返回单个表达式的值。这个概念稍微有点复杂,我们只需要简单了解即可。列表转换为字典函数dict() 可以将嵌套列表转换为字典。>>>list4=[["key1","value1"],["key2","value2"],["key3","value3"]]>>> dict1=dict(list4)>>> dict1{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}“成绩单”示例程序1.用字典存储数据程序清单 4.1.py2.修改字典中的数据程序清单 4.2.py3.向字典中添加数据程序清单 4.3.py4.对数据排序程序清单 4.4.py练习1.创建一个名为animal的元组,其中包含dog、cat、sheep、cow、horse和duck。2.请尝试把animal元组中第2个元素修改为mouse,看一下是否能够成功。如果不能成功,想想这是为什么。3.请告诉我们现在animal元组中有多少个元素并打印出来。4.请创建一个名为timeTable的字典来记录星期一的课程,用键表示第几节课,用值表示是什么课程。5.请告诉我们星期一的第4 节课是什么课。6.如果要将星期一的第2 节课改为体育课,请修改timeTable字典。 展开更多...... 收起↑ 资源预览