Python基础—数据类型字典

字典

Python语言中唯一的映射类型
特性:
key-value结构
key必须为不可变数据类型、必须唯一(数字,字符串,元组)
可存放任意多个value、可修改、可以不唯一
无序
查询速度快,且不受dict的大小影响

字典的创建

使用{}创建字典
name = {"name": "hk", "sex": "男"}
通过 fromkeys() 方法创建字典

语法:dictname = dict.fromkeys(list,value=None)
list 参数表示字典中所有键的列表,value 参数默认为 None,表示所有键对应的值

name = dict.fromkeys([1,2,3,4],100)   #{1: 100, 2: 100, 3: 100, 4: 100}

通过 dict() 映射函数创建字典
  1. 用 dict() 函数和 zip() 函数,可将前两个列表转换为对应的字典
    keys = [‘one’,‘two’,‘three’] #还可以是字符串或元组
    values = [1,2,3] #还可以是字符串或元组
    a = dict(zip(keys,values))
  2. 通过key=值的方式创建字典
dic = dict(one=1,two=2,three=3) #{'one': 1, 'two': 2, 'three': 3}
print(dic)

注意:one、two、three 都是字符串,但使用此方式创建字典时,字符串不能带引号
4. 向 dict() 函数传入列表或元组,而它们中的元素又各自是包含 2 个元素的列表或元组,其中第一个元素作为键,第二个元素作为值

demo = (['two',2],['one',1],['three',3])
dic1 = dict(demo)                       #{'one': 1, 'two': 2, 'three': 3}

字典的常用操作

name = dict(name="hk", age=99)
增加键值对
    name["salary"] = 10   # {'name': 'hk', 'age': 99, 'salary': 10}
    print(name)

setdefault() 方法总能返回指定 key 对应的 value;
#如果该键值对存在,则直接返回该 key 对应的 value;
#如果该键值对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value

print(name.setdefault("job","hehe"))    # hehe
print(name)  						 	# {'name': 'hk', 'age': 99, 'job': 'hehe'}

删除操作
del names          # 删除整个字典
del names["name"]  # 删除name
names.pop("name")  # 删除指定key
names.popitem      # 随便删除1个key
names.clear()      # 清空字典
修改字典
names["name"] = "kun"
names.update(name1)  # 将字典name1中的key-value添加到names中,如果已存在key,则更新为Name中的key
查找操作
value = names["age"]  					# 返回key对应的值,若不存在则报错
1. get 返回key对应的值,若key不存在,则返回default的值(default默认为None)
print(names.get("hehh",None))  			# None
print(names.get("hehh",999))   			# 999
2. keys 返回一个包含字典所有KEY的列表
print(names.keys())  				 	# dict_keys(['name', 'sex', 'age', 'job'])
3. values 返回一个包含字典所有value的列表
print(names.values())
4. items 返回一个包含所有(键,值)元组的列表
print(names.items())  					#dict_items([('name', 'hk'), ('sex', '男'), ('age', 18), ('job', 'teacher')])
循环
for i in names:
    print(i,names[i],end=" ")  	 # name hk sex 男 age 18 job teacher
for k,v in names.items():
    print(k, v)      			 # name hk sex 男 age 18 job teacher
长度
print(len(names))               # 4
字典元素的判断
print("name" in names)          # True

你可能感兴趣的:(Python学习)