python3 _笨方法學Python_日記_DAY7
習題 40: 字典, 可愛的字典
回顧一下列表:
列表可以通過數字,從0開始的數字來索引列表中的元素
而字典dict,可以通過任何東西找到元素,可以將一個東西和另一個相關聯
還可以通過字符串向字典中添加
stuff = {‘name‘: ‘Zed‘, ‘age‘: 18, ‘height‘: 6**6} stuff[‘city‘] = ‘San Francisco‘ print(stuff[‘city‘]) stuff[1] = ‘Wow‘ stuff[2] = ‘Neato‘ print(stuff)
San Francisco {‘name‘: ‘Zed‘, ‘age‘: 18, ‘height‘: 46656, ‘city‘: ‘San Francisco‘, 1: ‘Wow‘, 2: ‘Neato‘}
通過del來刪除
stuff = {‘name‘: ‘Zed‘, ‘age‘: 18, ‘height‘: 6**6} stuff[‘city‘] = ‘San Francisco‘ print(stuff[‘city‘]) stuff[1] = ‘Wow‘ stuff[2] = ‘Neato‘ print(stuff) del stuff[‘city‘] del stuff[1] del stuff[2] print(stuff)
San Francisco {‘name‘: ‘Zed‘, ‘age‘: 18, ‘height‘: 46656, ‘city‘: ‘San Francisco‘, 1: ‘Wow‘, 2: ‘Neato‘} {‘name‘: ‘Zed‘, ‘age‘: 18, ‘height‘: 46656}
練習:
cities = {‘CA‘: ‘San Francisco‘, ‘MI‘: ‘Detroit‘, ‘EL‘: ‘Jacksonville‘} cities[‘NY‘] = ‘New York‘ cities[‘OR‘] = ‘Portland‘ def find_city(themap, state):if state in themap: return themap[state] else: return "Not Found." cities[‘_find‘] = find_city while True: print("State?(ENTER to quit") state = input(">") if not state:break city_found = cities[‘_find‘](cities,state) print(city_found)
結果
State?(ENTER to quit >YK Not Found. State?(ENTER to quit >NY New York State?(ENTER to quit >OR Portland State?(ENTER to quit >CA San Francisco State?(ENTER to quit > Process finished with exit code 0
1. Python 看到 city_found = 於是知道了需要創建一個變量。
2. 然後它讀到 cities ,然後知道了它是一個字典
3. 然後看到了 [‘_find‘] ,於是 Python 就從索引找到了字典 cities 中對應的位
置,並且獲取了該位置的內容。
4. [‘_find‘] 這個位置的內容是我們的函數 find_city ,所以 Python 就知道了
這裏表示一個函數,於是當它碰到 ( 就開始了函數調用。
5. cities, state 這兩個參數將被傳遞到函數 find_city 中,然後這個函數就被
運行了。
6. find_city 接著從 cities 中尋找 states ,並且返回它找到的內容,如果什麽
都沒找到,就返回一個信息說它什麽都沒找到。
7. Python find_city 接受返回的信息,最後將該信息賦值給一開始
的 city_found 這個變量。
如果你倒著閱讀的話,代碼可能會變得更容易理解。讓我
們來試一下,一樣是那行:
1. state 和 city 是...
2. 作為參數傳遞給...
3. 一個函數,位置在...
133
4. ‘_find‘ 然後尋找,目的地為...
5. cities 這個位置...
6. 最後賦值給 city_found.
還有一種方法讀它,這回是“由裏向外”。
1. 找到表達式的中心位置,此次為 [‘_find‘].
2. 逆時針追溯,首先看到的是一個叫 cities 的字典,這樣就知道了 cities 中
的 _find 元素。
3. 上一步得到一個函數。繼續逆時針尋找,看到的是參數。
4. 參數傳遞給函數後,函數會返回一個值。然後再逆時針尋找。
5. 最後,我們到了 city_found = 的賦值位置,並且得到了最終結果。
python3 _笨方法學Python_日記_DAY7