資源簡介 (共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字典。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫