字典
一、定义:
是另一种可变容器模型,可存储任意类型对象;(也被称为关联数组或哈希表;存储的数据是没有顺序的)
注意:
·键名必须是唯一的,而且键名不可修改,可以联想到新华字典,在传递参数用(**arg)来保存字典
·字典值可以是任意的Python对象,既可以是标准的对象,也可以是用户定义的
·不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
·键必须不可变,所以可以用数字、字符串、元组充当
二、字典的增、删、改、查
①增
示例1:dict1 = {"info":1}
dict["info"] = "hello world"
print(dict1)
结果:{'info': 'hello world'}
示例2:dict1 = {'info': 'hello world'}
dict1["sakura"] = "python"
print(dict1)
结果:{'info': 'hello world', 'sakura': 'python'}
注意:·如果存在键值对,在该键下添加新元素,会把旧元素替换(修改元素)(如示例1)
·如果不存在的键,则会在该字典里新插入一对键值对(如示例2)
②删
示例:dict1 = {"info":1,"sakura":"hello world"}
del dict1["sakura"]
print(dict1)
结果:{"info":1}
示例:dict1.clear()
print(dict1)
结果:{}
示例:del dict1
print(dict1)
结果:NameError: name 'dict1' is not defined
③改
字典添加新内容的方法是增加新的键值对,修改或删除已有键值对
④查
·获取字典内元素方法(通过键(key)来获取对应的值(value))
·通过keys()内置函数来获取所有的键
示例:dict1 = {"info",1,"sakura":"hello"}
print(dict1.keys())
结果:dict_keys(['info', 'sakura'])
·通过values()内置函数来获取所有的值
示例:dict1 = {"info",1,"sakura":"hello"}
print(dict1.values())
结果:dict_values([1, 'hello'])
三、内置函数
len(dict):计算字典元素个数,即键的总数
str(dict):输出字典,以可打印的字符串表示。
type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。
dict.clear():删除字典内所有元素
dict.copy():返回一个字典的浅复制
dict.fromkeys(iterable, value=None):创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
示例:
1 i1 = "a" 2 i2 = ["d",1] 3 i3 = ("c","v") 4 i4 = {"info":"abc","name":"sakura"} 5 v1 = dict.fromkeys(i1,"add") 6 v2 = dict.fromkeys(i2,"change") 7 v3 = dict.fromkeys(i3,"change") 8 v4 = dict.fromkeys(i4) 9 v5 = dict.fromkeys(i4,"valueChange") 10 print(v1) 11 print(v2) 12 print(v3) 13 print(v4) 14 print(v5)
结果:
1 {'a': 'add'} 2 {1: 'change', 'd': 'change'} 3 {'v': 'change', 'c': 'change'} 4 {'info': None, 'name': None} 5 {'info': 'valueChange', 'name': 'valueChange'}
注意:
·该方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None
·iterable:用于创建新的字典的键的可迭代对象(字符串、列表、元组、字典),所以它的值不能是数值型(int、float)否则会报错
dict.get(key,default=none):返回指定键的值,如果值不在字典中返回default值
key in dict:如果键在字典dict里返回true,否则返回false
dict.items():以列表返回可遍历的(键, 值) 元组数组
示例:i1 = {"info":"abc","name":"sakura"}
result = i1.items()
print(result)
结果:dict_items([('info', 'abc'), ('name', 'sakura')])
dict.keys():返回一个迭代器,可以使用 list() 来转换为列表
示例:i1 = {"info":"abc","name":"sakura"}
result = i1.keys()
print(result)
结果:dict_keys(['info', 'name'])
dict.setdefault(key,default=none):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2):把字典dict2的键/值对更新到dict里
dict.values():返回一个迭代器,可以使用 list() 来转换为列表
示例:i1 = {"info":"abc","name":"sakura"}
result = i1.values()
print(result)
结果:dict_values(['abc', 'sakura'])
pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
d.popitem():随机返回并删除字典中的一对键和值(一般删除末尾对)。