python基础类型(二):字典与元组
2018-11-05 本文已影响30人
渔父歌
一、字典
python中的字典是由键值对组成,每一个键在字典中都是唯一的,值可以是任意类型的对象,但是键必须是不可遍的对象类型(如:字符串、数字、元组等)。
一个字典由许多个键值对组成,我们可以通过键来访问字典中的对应键的值,如:
d = {
'test1':1,
2:2,
(1,2):3
}
d['test1'] # 1
d[2] # 2
d[(1,2)] # 3
也可以通过键来给字典中对应位置的键进行赋值,如:
d['test1'] # 1
d['test1'] = 4
d['test1'] # 4
如果所给的键不在字典中,就会向字典里添加所给的键并进行赋值,如:
d['test2'] = 4
"""
d = {
'test1':1,
2:2,
(1,2):3,
'test2': 4
}
"""
1. 字典常用操作
-
in
:我们通常使用in
来判断某个键是否在字典当中,如:'test1' in d # True 3 in d # False
-
items()
:以元组形式返回字典中的键值对,如:d = { 'test1':1, 2:2, (1,2):3 } print(d.items()) # dict_items([('test1', 1), (2, 2), ((1, 2), 3)])
-
keys()
:以列表形式返回字典中的键,如:d = { 'test1':1, 2:2, (1,2):3 } print(d.keys()) # dict_keys(['test1', 2, (1, 2)])
-
values()
:以列表形式返回字典中的值,如:d = { 'test1':1, 2:2, (1,2):3 } print(d.values()) # dict_values([1, 2, 3])
-
update(dict: b)
将字典 b中的所有键值添加到 d中,如果 s中的键在 d中已经存在,则用 s中键对应的值覆盖 d值,如:d = { 'test1':1, 2:2, (1,2):3 } b = { 2:3, 'test2':5 } d.update(b) print(d) # {'test1': 1, 2: 3, (1, 2): 3, 'test2': 5}
可以看到 d中原来 2处的值被 b中 2处的值覆盖了。
-
get(key, default)
:返回字典中键 key对应的值,如果键 key不在字典中,则返回 default。如果没有提供默认值且键 key不在字典中,就会抛出KeyErrror
错误。
二、元组
元组在 python中和字符串一样,是不可变类型,即一旦定义其值不可改变,相当于其他语言中的常量。
元组在 python中通常用来保存一些不能改变的值,也经常用来作为函数的返回值,因为元组有一种操作叫做解包,可以将元组中的多个值同时赋值给多个变量,如:
t = (1,2,3,4)
x1,x2,x3,x4 = t
# 在最后一个变量名前加上 *,就会将多余的值全部给最后一个变量
# 否则会报错, 如:
x1, x2 = t #ValueError: too many values to unpack (expected 2)
x1, *x2 = t
# x1 1
# x2 [2,3,4]
在返回函数值时,我们可以这样使用:
def f():
return (1,2,3)
x1,x2,x3 = f()
x1,*x2 = f()
# 也可以不使用括号
def f():
return 1,2,3
x1,x2,x3 = f()
x1,*x2 = f()