34 py創建和使用字典 使用dict函數將序列(列表、元組)轉換爲字典 以及 字典的基本操作

第一課 創建和使用字典 # 創建和使用字典 # 我們以前講過2種序列:1列表 2元組 # 共同點:都是通過索引引用元素值 # 不同點:列表是可讀寫的,元組是隻讀的 names = ["Bill", "Mike", "John", "Mary"] numbers = ["1234", "4321", "6789", "6543"] print(numbers[names.index("Mike")]) #4321 通過names中的Mike的索引 位置 來查找他的電話號碼 numbers中的列表 print(names[numbers.index("6543")]) # Mary # 多個關聯的數據分散到不同的 列表或者元組中,不太好維護 引入 字典 # 字典是一對 key和value {} 中間用: 表示 phoneBook = {"Bill":"1234","Mike":"4321","John":"6645","Mary":"7753"} print(phoneBook) # {"Bill":"1234","Mike":"4321","John":"6645","Mary":"7753"} print(phoneBook["Mike"]) # 4321 ----------------------------------------------- 第二課 使用dict函數將序列(列表、元組)轉換爲字典 // 通俗的理解爲: 可以把列表和元組 通過 dict函數 轉化爲字典類型 # 使用dict函數將序列轉換爲字典 # 第一個是列表 第二個元素爲元組 # 首先定義一個列表,列表中有多個元數,裏面的元素可以爲多個值,可以爲列表也可以爲元組 items = [['Bill',"4321"],("Mike","7891"),['John','4567']] d = dict(items) print(d) # {'Bill': '4321', 'Mike': '7891', 'John': '4567'} ''' 也可以直接寫成這樣 items = [['Bill',"4321"],("Mike","7891"),['John','4567']] #d = dict(items) print(dict(items)) ''' dict1 = dict(name="Bill", number=6543, age=34) # 這是把元組轉化爲字典 print(dict1) # {'name': 'Bill', 'number': 6543, 'age': 34} # 需要先定義一個空的列表 然後 把輸入的 input 追加起來,再通過dict函數進行轉化 成字典 items = [] while True: key = input("請輸入Key:") if key == ":exit": break; value = input("請輸入value:") keyValue = [key,value] items.append(keyValue) # 追加 d = dict(items) print(d) ''' 請輸入Key:majihui 請輸入value:12345 請輸入Key:zhaoshun 請輸入value:33333 請輸入Key:local 請輸入value:china 請輸入Key::exit {'majihui': '12345', 'zhaoshun': '33333', 'local': 'china'} ''' ------------------------------------- 第三課 字典的基本操作 # 字典的基本操作 # 通過len函數獲取字典的長度 items = [1,2,3,4,5] # 這是一個列表 print(len(items)) # 5 輸出列表的長度 d = {"name":"Bill", "age":43} # 這是一個字典 print(len(d)) # 2 輸出字典的長度 # 通過key獲取和設置或修改字典中的值 print(d["name"]) # Bill 獲取字典中的值 d["name"] = "Mary" # 修改字典中的value的值 把原來名字爲 Bill改成 Mary print(d) # {'name': 'Mary', 'age': 43} #print(items[10]) # 當輸出的索引超出了列表 就會報錯 異常 d["salary"] = 5432 # 在原來字典的基礎上追加一個 print(d) # {'name': 'Mary', 'age': 43, 'salary': 5432} # 判斷字段是否在列表中 print(1 in items) # True print(10 in items) # False #對於字典來說,他是直接找key是否在字典中存儲,他不會找value print("name" in d) # True print("location" in d) # False ''' 列表和字典不同點小結: 1. key的類型,列表只能是數字(索引),字典的key可以是多種類型,如字符串、元組 2. 自動添加,引用列表元素,索引必須在範圍內,否則拋出異常,字典的key如果不存在,會自動添加一個key-value對 3. 查找成員,列表使用in,直接查找值,字典使用in,查找key 查找效率,字典要高於列表和元組 ''' IDEs = { 'eclipse': { 'languages':['Java','Python','JavaScript','PHP'], 'organization':'Eclipse基金會' }, 'visualstudio': { 'languages':['C#','C++', 'VB.NET'], 'organization':'微軟' }, 'webstorm': { 'languages':['JavaScript'], 'organization':'JetBrains' } } labels = { 'languages':'支持的編程語言', 'organization':'所屬機構' } IDE = input('請輸入IDE的名字') findIDE = IDE.replace(' ', '').lower() # 把輸入的空格轉化爲空 並且 把輸入的值轉化爲小寫 choice = input('要查詢的IDE支持的編程語言(lang)還是所屬及機構(org)?') if choice == 'lang': key = 'languages' if choice == 'org': key = 'organization' if findIDE in IDEs: print("{} {}是{}.".format(IDE, labels[key],IDEs[findIDE][key])) ''' 請輸入IDE的名字eclipse 要查詢的IDE支持的編程語言(lang)還是所屬及機構(org)?lang eclipse 支持的編程語言是['Java', 'Python', 'JavaScript', 'PHP']. 請輸入IDE的名字WEBstorm 要查詢的IDE支持的編程語言(lang)還是所屬及機構(org)?org WEBstorm 所屬機構是JetBrains. 請輸入IDE的名字eclipse //輸入的這個空面有空格 要查詢的IDE支持的編程語言(lang)還是所屬及機構(org)?org eclipse 所屬機構是Eclipse基金會. '''
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章