计算经济地理学是经济地理学的重要领域,是指应用计算机科学和技术,结合经济地理学理论和方法,运用数字化、模拟和统计等技术手段对空间经济系统进行分析和预测的研究领域。计算经济地理学的主要研究内容包括:构建空间经济模型、空间数据分析、利用各种编程语言和软件进行数据处理和可视化、制定空间规划、开展政策模拟等。计算经济地理学将经济地理学和计算机科学相结合,为经济地理学研究提供了全新的工具和方法,使研究者能够更加深入地探索和理解现实世界中的空间经济问题。
字典(dictionary)是一种可变的数据结构,它可以存储多个键值对(key-value pair),其中每个键(key)是唯一的,每个值(value)可以是任意类型的数据。
一、创建字典
字典用花括号{}
表示,键值对之间用逗号,
分隔,键和值之间用冒号:
分隔。例如,我们可以直接创建一个包含四个城市和它们的人口的字典:
population = {"北京": 2154, "上海": 2418, "广州": 1530, "深圳": 1303}
除了直接创建字典,我们还可以通过dict()
函数来创建字典,有以下几种方式:
- 通过关键字参数创建字典,即用等号
=
将键和值连接,作为参数传入dict()
函数。例如,我们可以用关键字参数创建一个包含四个城市和它们的面积的字典:
area = dict(北京=16410, 上海=6340, 广州=7434, 深圳=1991)
area # 输出 {"北京": 16410, "上海": 6340, "广州": 7434, "深圳": 1991}
- 通过可迭代对象创建字典,即用一个包含多个键值对的列表,元组,集合或其他可迭代对象作为参数传入
dict()
函数。每个键值对可以是一个包含两个元素的列表,元组,集合或其他可迭代对象,或者是一个长度为2的字符串。例如,我们可以用一个列表创建一个包含四个城市和它们的经纬度的字典:
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)}
- 通过字典推导式创建字典,即用一个类似于列表推导式的表达式,用花括号
{}
包围,用冒号:
分隔键和值,用for循环遍历一个可迭代对象,生成一个新的字典。我们还可以用if语句添加条件过滤。例如,我们可以用一个字典推导式创建一个包含四个城市和它们的首字母的字典:
initial = {city[0]: city for city in ["北京", "上海", "广州", "深圳"]}
initial # 输出 {"北": "北京", "上": "上海", "广": "广州", "深": "深圳"}
注意,如果有重复的键,后面的值会覆盖前面的值,如上例中的"S"。
字典的格式化字符串是一种用于将字典中的键值对插入到字符串中的方法,它用花括号{}
包围字典中的键,用百分号%
连接字符串和字典,得到一个新的字符串。例如,我们可以用字典的格式化字符串创建一个包含四个城市和它们的人口的字符串:
population = {"北京": 2154, "上海": 2418, "广州": 1530, "深圳": 1303}
s = "北京的人口是%(北京)d万,上海的人口是%(上海)d万,广州的人口是%(广州)d万,深圳的人口是%(深圳)d万。" % population
s # 输出 "北京的人口是2154万,上海的人口是2418万,广州的人口是1530万,深圳的人口是1303万。"
注意,我们可以用不同的格式符(format specifier)来控制值的类型和格式,如%s
表示字符串,%d
表示整数,%.2f
表示保留两位小数的浮点数等。
二、字典的方法
可以用键来访问字典中的值,如果键不存在,会报错。例如,我们可以获取字典中"北京"和"杭州"的人口:
population["北京"] # 输出 2154
population["杭州"] # 报错 KeyError: '杭州'
可以用in
运算符来检查一个键是否在字典中,返回一个布尔值(True或False)。例如,我们可以检查"杭州"是否在字典中:
"杭州" in population # 输出 False
可以用赋值语句来添加或修改字典中的键值对,如果键已经存在,会覆盖原来的值,如果键不存在,会创建一个新的键值对。例如,我们可以在字典中添加"杭州"的人口,以及修改"深圳"的人口:
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()
方法来获取字典中的某个值,如果键不存在,可以返回一个默认值,而不会报错。例如,我们可以获取字典中"南京"的人口,如果不存在,返回0:
population.get("南京", 0) # 输出 0
可以用setdefault()
方法来获取字典中的某个值,如果键不存在,可以设置一个默认值,并添加到字典中。例如,我们可以获取字典中"南京"的人口,如果不存在,设置为1000,并添加到字典中:
population.setdefault("南京", 1000) # 输出 1000
population # 输出 {"北京": 2154, "上海": 2418, "深圳": 1350, "杭州": 981, "南京": 1000}
可以用update()
方法来更新字典中的键值对,如果键已经存在,会覆盖原来的值,如果键不存在,会创建一个新的键值对。可以用另一个字典或一个可迭代的键值对作为参数。例如,我们可以用一个字典来更新字典中的人口:
population.update({"北京": 2200, "成都": 1652})
population # 输出 {"北京": 2200, "上海": 2418, "深圳": 1350, "杭州": 981, "南京": 1000, "成都": 1652}
可以用pop()
方法来删除并返回字典中的某个值,如果键不存在,可以返回一个默认值,或者报错。例如,我们可以删除并获取字典中"上海"的人口,如果不存在,返回0:
population.pop("上海", 0) # 输出 2418
population # 输出 {"北京": 2200, "深圳": 1350, "杭州": 981, "南京": 1000, "成都": 1652}
可以用popitem()
方法来删除并返回字典中的最后一个键值对,如果字典为空,会报错。例如,我们可以删除并获取字典中的最后一个键值对:
population.popitem() # 输出 ("成都", 1652)
population # 输出 {"北京": 2200, "深圳": 1350, "杭州": 981, "南京": 1000}
可以用copy()
方法来复制一个字典,得到一个新的字典。例如,我们可以复制字典:
population_copy = population.copy()
population_copy # 输出 {"北京": 2200, "深圳": 1350, "杭州": 981, "南京": 1000}
三、列表、元组与字典之间的转换
可以用list()
函数来将一个字典转换为列表,得到一个新的列表,其中包含字典中的所有键。例如,我们可以将字典转换为列表:
list(population) # 输出 ["北京", "深圳", "杭州", "南京"]
可以用tuple()
函数来将一个字典转换为元组,得到一个新的元组,其中包含字典中的所有键。例如,我们可以将字典转换为元组:
tuple(population) # 输出 ("北京", "深圳", "杭州", "南京")
可以用dict()
函数来将一个列表或元组转换为字典,得到一个新的字典,其中每个元素是一个键值对,或者是一个可迭代的对象,包含两个元素,分别作为键和值。例如,我们可以将一个列表或元组转换为字典:
dict([("北京", 2200), ("深圳", 1350), ("杭州", 981), ("南京", 1000)]) # 输出 {"北京": 2200, "深圳": 1350, "杭州": 981, "南京": 1000}
dict((("北京", 2200), ("深圳", 1350), ("杭州", 981), ("南京", 1000))) # 输出 {"北京": 2200, "深圳": 1350, "杭州": 981, "南京": 1000}
近期文章
更多内容请翻看历史记录
如果觉得有用就“关注、分享、收藏、在看、点赞 ”吧
本文使用 文章同步助手 同步
网友评论