Python 元组
Python 列表
Python 字典
Python 集合
geopy 在python中的使用
python中的字典,即dict,全称是dictionary,在其它语言中称为map。使用键-值(key-value)存储,具有极快的查找速度。
注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
而list相反:
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值覆盖掉。
>>> dict1 = {'one' : 1, 'two' : 2}
>>> dict1
{'one': 1, 'two': 2}
参数为列表套元组或者元组套列表,列表套列表 、元组套元组。
# 参数是一个列表,列表的元素是元组
>>> dict1 = dict([('one', 1), ('two', 2)])
>>> dict1
{'one': 1, 'two': 2}
# 参数是一个列表,列表的元素是列表
>>> dict1 = dict([['one', 1], ['two', 2]])
>>> dict1
{'one': 1, 'two': 2}
# 参数是一个元组,列表的元素是列表
>>> dict1 = dict((['one', 1], ['two', 2]))
>>> dict1
{'one': 1, 'two': 2}
# 参数是一个元组,列表的元素是元组
>>> dict1 = dict((('one', 1), ('two', 2)))
>>> dict1
{'one': 1, 'two': 2}
除了使用初始化,还可以向字典中插入数据:
dict_name[key] = value
>>> dict1 = {'one' : 1, 'two' : 2}
>>> dict1
{'one': 1, 'two': 2}
>>> dict1['three'] = 3
>>> dict1
{'one': 1, 'two': 2, 'three': 3}
>>>
使用中括号
dict_name[key]
如果key不存在,就会报错。
通过get() 函数
dict_name.get(key) # key不存在时,返回None
dict_name.get(key, defalut_value) # 指定默认值,key不存在时,返回默认值
注意:返回None的时候Python的交互环境不显示结果。
>>> dict1 = {'one' : 1, "two" : 2}
>>> dict1['one']
1
>>> dict1['three']
Traceback (most recent call last):
File "" , line 1, in
dict1['three']
KeyError: 'three'
>>> dict1.get('one')
1
>>> dict1.get('three')
>>> dict1.get('three', 0)
0
>>>
使用key in dict
来判断key是否在字典中,返回布尔值。
>>> dict1
{'one': 1, 'two': 2}
>>> 'one' in dict1
True
>>> 'three' in dict1
False
>>> dict1 = {'one' : 1, 'two' : 2}
>>> dict1
{'one': 1, 'two': 2}
>>> dict1.pop('one')
1
>>> dict1
{'two': 2}
>>> dict1
{'Three': 3, 'one': 1, 'two': 2, 'Four': 4}
>>> for key in dict1.keys():
print(key, dict1[key])
Three 3
one 1
two 2
Four 4
>>> import copy
>>> dict1
{'Three': 3, 'one': 1, 'two': 2, 'Four': 4}
>>> dict2 = copy.deepcopy(dict1)
>>> dict2
{'Three': 3, 'one': 1, 'two': 2, 'Four': 4}
>>> dict2.clear()
>>> dict2
{}
>>> dict1
{'Three': 3, 'one': 1, 'two': 2, 'Four': 4}
廖雪峰 Python教程