Python--字典
- <font color=blue>一、创建字典
- <font color=blue>二、访问字典元素
- <font color=blue>三、字典的增、删、查、改
- <font color=blue>1、添加元素
- <font color=blue>2、删除元素
- <font color=blue>3、查找元素
- <font color=blue>4、修改元素
- <font color=blue>四、字典的其他操作
一、创建字典
字典包含两部分:“键”和“值”,“键”和“值”之间用冒号隔开。字典中键值是唯一的。
1、使用赋值运算符创建字典
dic = {} #创建空字典
dic = {'A': 20} #'A'是键,20为值
2、通过映射函数创建字典
格式:dictionary = dict(zip(key_list, value_list2))
dictionary :字典名称
zip()函数:用于将多个元组或列表对应位置的元素组合为元组,并返回包含这些内容的zip对象。若想得到元组,就用tuple()函数转为元组;若想得到列表,就用list()函数转为列表。
key_list:一个列表,用于生成字典的键
value_list2:一个列表,用于生成字典的值。
如果key_list和value_list2的长度不同,则与最短的列表长度相同。
key_list = ['a', 'b', 'c']
value_list = [1, 2, 3, 4, 5, 6] #与key_list的长度不同,则只取前三个元素和key_list中的元素匹配
dic = dict(zip(key_list, value_list))
print(dic)
输出:
{'a': 1, 'b': 2, 'c': 3}
3、通过给定“键-值”对创建字典
格式:dictionary = dict(key1 = value1, key2 = value2, …, keyn = valuen)
dictionary :字典名
key1,key2:字典的键,必须唯一
value1,value2:字典的值
dic = dict(a = 1, b = 2, c = 3) #a、b、c为键,1、2、3为值
print(dic)
输出:
{'a': 1, 'b': 2, 'c': 3}
4、使用fromkeys()方法创建字典
格式:dict.fromkeys(seq[, value])
seq:字典键值列表
value:可选参数, 设置键序列(seq)的值,默认为 None
seq = ('Google', 'Runoob', 'Taobao')
# 不指定默认的键值,默认为 None
thisdict = dict.fromkeys(seq)
print ("新字典为 : %s" % str(thisdict))
# 指定默认的键值
thisdict = dict.fromkeys(seq, 10)
print ("新字典为 : %s" % str(thisdict))
输出:
新字典为 : {'Google': None, 'Runoob': None, 'Taobao': None}
新字典为 : {'Google': 10, 'Runoob': 10, 'Taobao': 10}
5、推导式创建列表
格式;{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}
if 条件表式:可选参数
import random
randomdict={i:random.randint(10,99) for i in range(1,5)}
print(randomdict)
#运行结果
{1: 61, 2: 19, 3: 97, 4: 14}
olddict={'Jack': 4, 'Tom': 3}
newdict = {v: k for k, v in olddict.items() if v>3}
print(newdict)
输出结果:
{4: 'Jack'}
二、访问字典元素
1、通过键-值对访问
dic = {'a':1, 'b':2, 'c':3}
print(dic['a'])
#输出结果:
1
使用该方法访问元素时,如果键值不存在,则抛出异常
2、使用get()方法获取指定键的值
格式:dictionary_name.get(key, [default])
dictionary_name:字典名
default:可选参数,用于指定“键”不存在时返回的值,如果省略,则返回None。
dic = {'a':1, 'b':2, 'c':3}
print(dic.get('a'))
#输出
1
3、使用items()方法
使用字典的items()方法可以获取键-值对,结合for循环便可以遍历字典
dic = {'a':1, 'b':2, 'c':3}
for key, value in dic.items():
print(key, value)
#输出:
a 1
b 2
c 3
dic = {'a':1, 'b':2, 'c':3}
for item in dic.items():
print(item)
#输出:
('a', 1)
('b', 2)
('c', 3)
4、使用values()获取字典值
dic = {'a':1, 'b':2, 'c':3}
print(dic.values())
#输出
dict_values([1, 2, 3])
三、字典的增、删、查、改
1、添加元素
1)、通过键-值对添加字典元素
格式:dictionary[key] = value
dictionary:字典名
key:要添加的键,必须是唯一的,并且不可变。可以是字符串、数字或元组。
value:元素值,可以是任何数据类型,不是必须唯一的。
dic = {'a':1, 'b':2, 'c':3}
dic['d'] = 4
print(dic)
#输出结果
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
2)、使用update()方法添加元素
dic = {'a':1, 'b':2, 'c':3}
dic.update(d = 4) #形式一
dic.update(e = 5) #形式二
dic.update({'f':6}) #形式三
dic.update(**{'g':7}) #形式四
print(dic)
#输出结果
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}
2、删除元素
1)、使用del语句删除单个元素
dic = {'a':1, 'b':2, 'c':3}
del dic['c'] #删除key为c的元素
print(dic)
#输出结果
{'a': 1, 'b': 2}
2)、使用pop()方法删除元素
格式:pop(key[,default])
key:要删除的键
default :当键 key 不存在时返回的值
如果 key 存在 - 删除字典中对应的元素
如果 key 不存在 - 返回设置指定的默认值 default
如果 key 不存在且默认值 default 没有指定 - 触发 KeyError 异常
dic = {'a':1, 'b':2, 'c':3}
dic.pop('c') #删除指定元素
print(dic)
#输出
{'a': 1, 'b': 2}
3)、使用popitem()方法删除字典中最后一个元素
popitem方法返回并删除字典中的最后一对键和值。
dic = {'a':1, 'b':2, 'c':3}
dic.popitem() #删除字典中最后一个元素
print(dic)
#输出
{'a': 1, 'b': 2}
4)、删除字典中所有元素
dic = {'a':1, 'b':2, 'c':3}
dic.clear() #清空字典
print(dic)
#输出
{}
3、查找元素
1)、使用[]查找
若找不到对应的key值,会报一个KeyError错误。
dic = {'a':1, 'b':2, 'c':3}
print(dic['c'])
#输出
3
2)、使用get()方法查找
若找不到对应的key值,返回None。
dic = {'a':1, 'b':2, 'c':3}
print(dic['c'])
#输出
3
3)、使用setdefault()方法查找
格式:dict.setdefault(key, default=None)
参数:
key – 查找的键。
default – 键不存在时,设置的默认键值None。
返回值:
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
如果字典中已经存在这个key,setdefault不会修改key原来的值,而且该方法会返回key原来的值
dic = {'a':1, 'b':2, 'c':3}
print(dic.setdefault('d', 666))
#输出
666
4、修改元素
1)、通过[key]值修改元素值
dic = {'a':1, 'b':2, 'c':3}
dic['c'] = 100
print(dic)
#输出
{'a': 1, 'b': 2, 'c': 100}
2)、通过update方法修改元素值
dic = {'a':1, 'b':2, 'c':3}
dic.update(a = 100) #形式一
dic.update({'b': 200}) #形式二
dic.update(**{'c': 300}) #形式三
print(dic)
四、字典的其他操作