計(jì)算經(jīng)濟(jì)地理 | Python中的字典

計(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é):引論

經(jīng)濟(jì)地理學(xué)筆記再出發(fā)

Python定量城市研究和計(jì)算社會科學(xué)研究常用庫

耦合協(xié)調(diào)度模型的基本原理與Python實(shí)現(xiàn)

TOPSIS—熵權(quán)法的基本原理與基于Python實(shí)現(xiàn)代碼

基于python構(gòu)建空間權(quán)重矩陣

Python空間分析||geopandas安裝與基本使用

計(jì)算經(jīng)濟(jì)地理 || Python中的循環(huán)語句

計(jì)算經(jīng)濟(jì)地理 || Python中的分支結(jié)構(gòu)控制語句

計(jì)算經(jīng)濟(jì)地理||Python中的數(shù)據(jù)類型及運(yùn)算

Python中的標(biāo)識符與變量

經(jīng)濟(jì)地理中的數(shù)據(jù)類型與描述

更多內(nèi)容請翻看歷史記錄

如果覺得有用就“關(guān)注孙蒙、分享、收藏悲雳、在看挎峦、點(diǎn)贊?”

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市合瓢,隨后出現(xiàn)的幾起案子坦胶,更是在濱河造成了極大的恐慌,老刑警劉巖晴楔,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顿苇,死亡現(xiàn)場離奇詭異,居然都是意外死亡税弃,警方通過查閱死者的電腦和手機(jī)纪岁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來则果,“玉大人幔翰,你說我怎么就攤上這事∥髯常” “怎么了遗增?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長款青。 經(jīng)常有香客問我做修,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任饰及,我火速辦了婚禮蔗坯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘燎含。我一直安慰自己步悠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布瘫镇。 她就那樣靜靜地躺著鼎兽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铣除。 梳的紋絲不亂的頭發(fā)上谚咬,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音尚粘,去河邊找鬼择卦。 笑死,一個胖子當(dāng)著我的面吹牛郎嫁,可吹牛的內(nèi)容都是我干的秉继。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼泽铛,長吁一口氣:“原來是場噩夢啊……” “哼尚辑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盔腔,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤杠茬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后弛随,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓢喉,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年舀透,在試婚紗的時候發(fā)現(xiàn)自己被綠了栓票。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡愕够,死狀恐怖走贪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情链烈,我是刑警寧澤厉斟,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布挚躯,位于F島的核電站强衡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏码荔。R本人自食惡果不足惜漩勤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一感挥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧越败,春花似錦触幼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至亿傅,卻和暖如春媒峡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背葵擎。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工谅阿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酬滤。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓签餐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盯串。 傳聞我的和親對象是個殘疾皇子氯檐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容