学习python的心酸历程----字典
字典
字典是一种数据的集合,邮件支队组成的数据集合,键不能重复
字典中的键是不可变数据类型,常用的键有字符串、整形
定义
-
字典可以通过将以逗号分隔的
键: 值对列表包含于花括号之内来创建,例如:{'jack': 4098, 'sjoerd': 4127} -
可以通过
dict构造器来创建。a = dict(one=1, two=2, three=3) f = dict({'one': 1, 'three': 3}, two=2) -
数据类型的转换
c = dict([['one',1], ['two',2]]) #{'one': 1, 'two': 2} -
zip压缩,dict转换
c = dict(zip(['one', 'two'], [1, 2])) #{'one': 1, 'two': 2}
字典数据的操作
var1 = {'a': 1, 'b': 2, 'c':3}
var2 = {'one': 1, 'two': 2, 'three':3}
-
获取字典元素d[key] = value
print(var1['a']) #1
-
修改字典
var1['b'] = '二'
-
删除字典元素
del var2['three']
-
添加元素
var1['aa'] = 11
print(var1) #{'a': 1, 'b': 2, 'c':3, 'aa': 11}
注:如果字典里面的key重复了,就会被覆盖
-
成员检测
res = 'two' in var2
print(res) #Ture
res = 'AA' not in var2
print(res) #True
-
获取当前字典的长度(只能检测当前有多少对键值对)
res = len(var2)
print(res) #3
-
获取当前字典的所有key
res = var2.keys()
print(res) #dict_keys(['one', 'two', 'three'])
-
获取当前字典的所有value
res = var2.values()
print(res) #dict_values([1, 2, 3])
-
获取当前字典的所有键值对
res = var2.items()
print(res) #dict_items([('one', 1), ('two', 2), ('three', 3)])
-
对字典进行遍历
遍历出的是key
for i in var2:
print(i, end = " ") #one two three
print(var2[i]) #通过key获取value >>1 2 3
遍历字典时使用items函数,可以在遍历中获取key和value
var2 = {'one': 1, 'two': 2, 'three':3}
for a,b in var2.items():
# print(a, end= ' ') #one two three
# print(b, end= ' ') #1 2 3
print(a,b, end= ' ') #one 1 two 2 three 3
字典的相关函数
-
len(字典) 获取字典键值对的个数
-
dict.keys 获取当前字典的所有key,组成的列表
-
dict.values() 获取当前字典的所有value,组成的列表
-
dict.items() 返回由字典项 ((键, 值) 对) 组成的一个新视图
-
dict.iter() 返回以字典的键为元素的迭代器。
var2 = {'one': 1, 'two': 2, 'three':3} res = iter(var2) -
dict.pop() 通过key从当前字典中弹出键值对
res = var2.pop('one') print(res) #1 print(var2) #{'two': 2, 'three': 3} -
dict.popitem() 键值对会按 LIFO 的顺序被返回(后进先出)
res = dict.popitem() -
dict.get() 通过key找value,如果找不到,不会报错报None
res = var2.get('aa') print(res) #None print(var2) #{'one': 1, 'two': 2, 'three': 3} -
dact.update()字典的更新操作,如果key存在,则更新,key不存在,则添加
var2.update(a = 11, b = 22) print(var2) #{'one': 1, 'two': 2, 'three': 3, 'a': 11, 'b': 22} -
dict.setdefault()如果字典存在键 key ,返回它的值。如果不存在,插入值为 default 的键 key ,并返回 default 。 default 默认为
None。# re = var2.setdefault('aaa') # print(re) re = var2.setdefault('aaa','123') print(var2) #{'one': 1, 'two': 2, 'three': 3, 'aaa': '123'}
字典推导式
把字典中的键值对位置进行交换
#常规方法
var1 = {'a': 1, 'b': 2, 'c':3}
new1 = {}
for k,v in var1.items():
new1[v] = k
print(new1) #{1: 'a', 2: 'b', 3: 'c'}
#推导式
new1 = {v:k for k,v in var1.items()}
print(new1) #{1: 'a', 2: 'b', 3: 'c'}
#注意:以下推导式返回的结果是一个集合
new1 = {v for k,v in var1.items()}
print(new1) #{1, 2, 3}

浙公网安备 33010602011771号