Python字典客储存任意类型的对象,如字符串、数字、元祖、列表、字典、bool等。
优点:取值方便,速度快
1.创建字典
字典由键(key)和对应值(value)成对组成。
字典也被称作关联数组或哈希表。
基本语法如下:
dic = {"name":"李文强","age":"10","sex":"男"}
注意:
每个键与值用冒号隔开(:),每对用逗号分割,整体用花括号{}
键值独一无二(也被称作客哈希),但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,整数或元组。
2.字典的增
# dic['li'] = ["a","b","c"] #等于号前后分别是键/值 # print(dic) # setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。 # dic.setdefault('k','v') # print(dic) # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} # dic.setdefault('k','v1') # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} # print(dic)
3.字典的删
d.pop('key') #必须要传值,因为字典是无序的
d.popitem() #随机删除一个
d.clear() #清空字典
del d['key'] #
4.字典的改
d['key'] =value #key 存在即修改,key不存在即新增
d.setdefault('key',value) 只能新增
dic2.update(dic)
5.字典的查
# value1 = dic["name"] # 没有会报错 # print(value1) # # value2 = dic.get("djffdsafg","默认返回值") # 没有可以返回设定的返回值 # print(value2)
print(d['key']) #如果键值不存在,会报错 print(d.get('key')) #如果键值是不存在的值,返回None print(d.get('key','not find')) #如果键值不存在,返回“not find”
print(d.keys()) 获取所有key值 print(d.value()) #获取所有value值 if 'key' in d: #判断key是否存在 print('key') for k,v in d.items(): #遍历字典 print(k,v) #无需转化成list格式,保留了字典原有的特性 for k in dict: print(k, dict[k]) print(k,dict.get(k)) #取值速度快,性能好
6.字典的其他
print(dict.item()) 输出一个list格式(非真正意义上的list)
print(list(dict.items())) 把字典的key和value 转成一个多维list
输出结果:
len(dict): 计算字典元素个数,即键的总数。
str(dict): 输出字典可打印的字符串。
type(variable): 返回输入的变量类型,如果变量是字典就返回字典类型。
7.最后一点
# 通过一行语句创建一个这样的字典{1: 'alex', 2: 'alex', 3: 'alex'}?
# 不能直接写 dic={1:'alex',2:'alex',3: 'alex'})
t = dict.fromkeys((1,2,3),'alex')
print(t)