計(jì)算經(jīng)濟(jì)地理學(xué)是經(jīng)濟(jì)地理學(xué)的重要領(lǐng)域撞芍,是指應(yīng)用計(jì)算機(jī)科學(xué)和技術(shù)秧了,結(jié)合經(jīng)濟(jì)地理學(xué)理論和方法,運(yùn)用數(shù)字化序无、模擬和統(tǒng)計(jì)等技術(shù)手段對空間經(jīng)濟(jì)系統(tǒng)進(jìn)行分析和預(yù)測的研究領(lǐng)域验毡。計(jì)算經(jīng)濟(jì)地理學(xué)的主要研究內(nèi)容包括:構(gòu)建空間經(jīng)濟(jì)模型、空間數(shù)據(jù)分析帝嗡、利用各種編程語言和軟件進(jìn)行數(shù)據(jù)處理和可視化晶通、制定空間規(guī)劃、開展政策模擬等哟玷。計(jì)算經(jīng)濟(jì)地理學(xué)將經(jīng)濟(jì)地理學(xué)和計(jì)算機(jī)科學(xué)相結(jié)合录择,為經(jīng)濟(jì)地理學(xué)研究提供了全新的工具和方法,使研究者能夠更加深入地探索和理解現(xiàn)實(shí)世界中的空間經(jīng)濟(jì)問題碗降。
字典(dictionary)是一種可變的數(shù)據(jù)結(jié)構(gòu)隘竭,它可以存儲多個鍵值對(key-value pair),其中每個鍵(key)是唯一的讼渊,每個值(value)可以是任意類型的數(shù)據(jù)动看。
一、創(chuàng)建字典
字典用花括號{}
表示爪幻,鍵值對之間用逗號,
分隔菱皆,鍵和值之間用冒號:
分隔须误。例如,我們可以直接創(chuàng)建一個包含四個城市和它們的人口的字典:
population?=?{"北京":?2154,?"上海":?2418,?"廣州":?1530,?"深圳":?1303}
除了直接創(chuàng)建字典仇轻,我們還可以通過dict()
函數(shù)來創(chuàng)建字典京痢,有以下幾種方式:
- 通過關(guān)鍵字參數(shù)創(chuàng)建字典,即用等號
=
將鍵和值連接篷店,作為參數(shù)傳入dict()
函數(shù)祭椰。例如,我們可以用關(guān)鍵字參數(shù)創(chuàng)建一個包含四個城市和它們的面積的字典:
area?=?dict(北京=16410,?上海=6340,?廣州=7434,?深圳=1991)
area?#?輸出?{"北京":?16410,?"上海":?6340,?"廣州":?7434,?"深圳":?1991}
- 通過可迭代對象創(chuàng)建字典疲陕,即用一個包含多個鍵值對的列表方淤,元組,集合或其他可迭代對象作為參數(shù)傳入
dict()
函數(shù)蹄殃。每個鍵值對可以是一個包含兩個元素的列表携茂,元組,集合或其他可迭代對象诅岩,或者是一個長度為2的字符串讳苦。例如,我們可以用一個列表創(chuàng)建一個包含四個城市和它們的經(jīng)緯度的字典:
location?=?dict([["北京",?(39.9,?116.4)],?["上海",?(31.2,?121.5)],?["廣州",?(23.1,?113.3)],?["深圳",?(22.5,?114.1)]])
location?#?輸出?{"北京":?(39.9,?116.4),?"上海":?(31.2,?121.5),?"廣州":?(23.1,?113.3),?"深圳":?(22.5,?114.1)}
- 通過字典推導(dǎo)式創(chuàng)建字典吩谦,即用一個類似于列表推導(dǎo)式的表達(dá)式鸳谜,用花括號
{}
包圍,用冒號:
分隔鍵和值逮京,用for循環(huán)遍歷一個可迭代對象卿堂,生成一個新的字典束莫。我們還可以用if語句添加條件過濾懒棉。例如,我們可以用一個字典推導(dǎo)式創(chuàng)建一個包含四個城市和它們的首字母的字典:
initial?=?{city[0]:?city?for?city?in?["北京",?"上海",?"廣州",?"深圳"]}
initial?#?輸出?{"北":?"北京",?"上":?"上海",?"廣":?"廣州",?"深":?"深圳"}
注意览绿,如果有重復(fù)的鍵策严,后面的值會覆蓋前面的值,如上例中的"S"饿敲。
字典的格式化字符串是一種用于將字典中的鍵值對插入到字符串中的方法妻导,它用花括號{}
包圍字典中的鍵,用百分號%
連接字符串和字典怀各,得到一個新的字符串倔韭。例如,我們可以用字典的格式化字符串創(chuàng)建一個包含四個城市和它們的人口的字符串:
population?=?{"北京":?2154,?"上海":?2418,?"廣州":?1530,?"深圳":?1303}
s?=?"北京的人口是%(北京)d萬瓢对,上海的人口是%(上海)d萬寿酌,廣州的人口是%(廣州)d萬,深圳的人口是%(深圳)d萬硕蛹。"?%?population
s?#?輸出?"北京的人口是2154萬醇疼,上海的人口是2418萬硕并,廣州的人口是1530萬,深圳的人口是1303萬秧荆。"
注意倔毙,我們可以用不同的格式符(format specifier)來控制值的類型和格式,如%s
表示字符串乙濒,%d
表示整數(shù)陕赃,%.2f
表示保留兩位小數(shù)的浮點(diǎn)數(shù)等。
二琉兜、字典的方法
可以用鍵來訪問字典中的值凯正,如果鍵不存在,會報錯豌蟋。例如廊散,我們可以獲取字典中"北京"和"杭州"的人口:
population["北京"]?#?輸出?2154
population["杭州"]?#?報錯?KeyError:?'杭州'
可以用in
運(yùn)算符來檢查一個鍵是否在字典中,返回一個布爾值(True或False)梧疲。例如允睹,我們可以檢查"杭州"是否在字典中:
"杭州"?in?population?#?輸出?False
可以用賦值語句來添加或修改字典中的鍵值對,如果鍵已經(jīng)存在幌氮,會覆蓋原來的值缭受,如果鍵不存在,會創(chuàng)建一個新的鍵值對该互。例如米者,我們可以在字典中添加"杭州"的人口,以及修改"深圳"的人口:
population["杭州"]?=?981
population["深圳"]?=?1350
population?#?輸出?{"北京":?2154,?"上海":?2418,?"廣州":?1530,?"深圳":?1350,?"杭州":?981}
可以用del
語句來刪除字典中的鍵值對宇智,如果鍵不存在蔓搞,會報錯。例如随橘,我們可以刪除字典中"廣州"的鍵值對:
del?population["廣州"]
population?#?輸出?{"北京":?2154,?"上海":?2418,?"深圳":?1350,?"杭州":?981}
可以用clear()
方法來清空字典中的所有鍵值對喂分,得到一個空的字典。例如机蔗,我們可以清空字典:
population.clear()
population?#?輸出?{}
可以用keys()
方法來獲取字典中的所有鍵蒲祈,返回一個可迭代的對象。例如萝嘁,我們可以獲取字典中的所有鍵:
population.keys()?#?輸出?dict_keys(["北京",?"上海",?"深圳",?"杭州"])
可以用values()
方法來獲取字典中的所有值梆掸,返回一個可迭代的對象。例如牙言,我們可以獲取字典中的所有值:
population.values()?#?輸出?dict_values([2154,?2418,?1350,?981])
可以用items()
方法來獲取字典中的所有鍵值對酸钦,返回一個可迭代的對象,其中每個元素是一個元組嬉挡,包含一個鍵和一個值钝鸽。例如汇恤,我們可以獲取字典中的所有鍵值對:
population.items()?#?輸出?dict_items([("北京",?2154),?("上海",?2418),?("深圳",?1350),?("杭州",?981)])
可以用get()
方法來獲取字典中的某個值,如果鍵不存在拔恰,可以返回一個默認(rèn)值因谎,而不會報錯。例如颜懊,我們可以獲取字典中"南京"的人口财岔,如果不存在,返回0:
population.get("南京",?0)?#?輸出?0
可以用setdefault()
方法來獲取字典中的某個值河爹,如果鍵不存在匠璧,可以設(shè)置一個默認(rèn)值,并添加到字典中咸这。例如夷恍,我們可以獲取字典中"南京"的人口,如果不存在媳维,設(shè)置為1000酿雪,并添加到字典中:
population.setdefault("南京",?1000)?#?輸出?1000
population?#?輸出?{"北京":?2154,?"上海":?2418,?"深圳":?1350,?"杭州":?981,?"南京":?1000}
可以用update()
方法來更新字典中的鍵值對,如果鍵已經(jīng)存在侄刽,會覆蓋原來的值指黎,如果鍵不存在,會創(chuàng)建一個新的鍵值對州丹〈装玻可以用另一個字典或一個可迭代的鍵值對作為參數(shù)。例如墓毒,我們可以用一個字典來更新字典中的人口:
population.update({"北京":?2200,?"成都":?1652})
population?#?輸出?{"北京":?2200,?"上海":?2418,?"深圳":?1350,?"杭州":?981,?"南京":?1000,?"成都":?1652}
可以用pop()
方法來刪除并返回字典中的某個值吓揪,如果鍵不存在,可以返回一個默認(rèn)值蚁鳖,或者報錯磺芭。例如赁炎,我們可以刪除并獲取字典中"上海"的人口醉箕,如果不存在,返回0:
population.pop("上海",?0)?#?輸出?2418
population?#?輸出?{"北京":?2200,?"深圳":?1350,?"杭州":?981,?"南京":?1000,?"成都":?1652}
可以用popitem()
方法來刪除并返回字典中的最后一個鍵值對徙垫,如果字典為空唧领,會報錯惩歉。例如,我們可以刪除并獲取字典中的最后一個鍵值對:
population.popitem()?#?輸出?("成都",?1652)
population?#?輸出?{"北京":?2200,?"深圳":?1350,?"杭州":?981,?"南京":?1000}
可以用copy()
方法來復(fù)制一個字典,得到一個新的字典雷酪。例如,我們可以復(fù)制字典:
population_copy?=?population.copy()
population_copy?#?輸出?{"北京":?2200,?"深圳":?1350,?"杭州":?981,?"南京":?1000}
三、列表、元組與字典之間的轉(zhuǎn)換
可以用list()
函數(shù)來將一個字典轉(zhuǎn)換為列表厢破,得到一個新的列表,其中包含字典中的所有鍵治拿。例如摩泪,我們可以將字典轉(zhuǎn)換為列表:
list(population)?#?輸出?["北京",?"深圳",?"杭州",?"南京"]
可以用tuple()
函數(shù)來將一個字典轉(zhuǎn)換為元組,得到一個新的元組劫谅,其中包含字典中的所有鍵见坑。例如,我們可以將字典轉(zhuǎn)換為元組:
tuple(population)?#?輸出?("北京",?"深圳",?"杭州",?"南京")
可以用dict()
函數(shù)來將一個列表或元組轉(zhuǎn)換為字典捏检,得到一個新的字典荞驴,其中每個元素是一個鍵值對,或者是一個可迭代的對象贯城,包含兩個元素熊楼,分別作為鍵和值。例如能犯,我們可以將一個列表或元組轉(zhuǎn)換為字典:
dict([("北京",?2200),?("深圳",?1350),?("杭州",?981),?("南京",?1000)])?#?輸出?{"北京":?2200,?"深圳":?1350,?"杭州":?981,?"南京":?1000}
dict((("北京",?2200),?("深圳",?1350),?("杭州",?981),?("南京",?1000)))?#?輸出?{"北京":?2200,?"深圳":?1350,?"杭州":?981,?"南京":?1000}
近期文章
基于Python的計(jì)算經(jīng)濟(jì)地理學(xué):引論
Python定量城市研究和計(jì)算社會科學(xué)研究常用庫
耦合協(xié)調(diào)度模型的基本原理與Python實(shí)現(xiàn)
TOPSIS—熵權(quán)法的基本原理與基于Python實(shí)現(xiàn)代碼
計(jì)算經(jīng)濟(jì)地理 || Python中的循環(huán)語句
計(jì)算經(jīng)濟(jì)地理 || Python中的分支結(jié)構(gòu)控制語句
計(jì)算經(jīng)濟(jì)地理||Python中的數(shù)據(jù)類型及運(yùn)算
經(jīng)濟(jì)地理中的數(shù)據(jù)類型與描述
更多內(nèi)容請翻看歷史記錄
如果覺得有用就“關(guān)注孙蒙、分享、收藏悲雳、在看挎峦、點(diǎn)贊?”吧
本文使用 文章同步助手 同步