pthon字典

1. 字典


应用:
貂蝉 ---['屠龙刀','手榴弹']  800
诸葛亮 ----['鹅毛扇','碧血剑','98k枪']  300

字典:
特点:
1.符号:{}
2.关键字:dict
3.保存的元素是:key:value

列表    元组   字典
[]		()		{}
list	tuple	dict
element  element  key:value

[].append(8)
element  元素
dict1 = {}  #空字典

dict2 = dict()  #空字典    list1 = list()   空列表    tuple1 = tuple()  空元组

dict3 = {'ID':'123456789','name':'lucky','age':18}   #['123454657','lucky',18]

# dict4 = dict(('name','lucky'))   #{'name':xxx,'lucky':xxx}
#print(dict4)

dict4 = dict(['name','lucky',('age',18)]) #'name':'lucky','age':18
print(dict4)

dict5 = dict([(1,2),(4,5),(6,8),(9,0)])
print(dict5)

# 注意:list可以转成字典  但是前提:列表中元素都要成对出现
# 字典中的增删改查

# 增加:格式 :dict6[key] = value 
# 特点:按照上面的格式 ,如果在字典中存在同名的key,则发生值的覆盖。
#					  如果没有同名的key,则实现添加功能(key:value添加到字典中)
dict6 = {}
dict6['brand'] = 'huawei'
print(dict6) # {'brand':'huawei'}
dict6['brand']= 'mi'
print(dict6)
dict6['type']='p30 pro'
dict6['price']=9000
dict6['color']= '黑色'
print(dict6)


案例:
用户注册功能:
username
pasword
email
phone
print('----------------------欢迎来到智联招聘用户注册-------------------------')
username = input('输入用户名:')
pasword = input('输入密码:')
repassword = input('输入确认密码:')
email = input('输入邮箱:')
phone = input('输入手机号:')

#定义一个字典
user = {}
# 将信息保存到字典中
user['username'] = username
if pasword == repassword:
	user['password'] = pasword
else:
	print('两次密码不一致!')
user['email'] = email 
user['phone'] = phone 

# 保存到数据库
database.append(user)

answer = input('是否继续注册?(y/n)')
	
if answer != 'y':
		break

print(database)

在这里插入图片描述

2字典的items操作

增加元素(key:value)
dict[key] = value ------->{key:value}

特点:key在字典中是唯一的,value值可以是不唯一
{'name':'tom','name':'aaa'}   错误定义 
{'张三',100,'李四'100,‘王五’:100}   正确

查询元素
list1 = []
list1.append(element)

dict1 = {}

dict1[key] = value

修改:
list1[index] = newvalue

lict1[key] = newvalue

查询元素:
list1[index] ------> element

dict1[key]   ------>  value

取值:字典都是根据key获取value值 


3.python字典操作中的get函数

list1 = [3,5,7,8]

print(list1[2])

dict1 = {'0':'张三','1':'李四','2':'王五'}

print(dict1['2'])

dict2 = {'张三':100,'李四':100,'王五':89,'赵柳':99}

print(dict2['王五'])

#考试分数大于90分人
#尝试对字典遍历

for value in dict2:
	print(value)


#遍历的结果是:就是字典的key

#字典里面的函数:
# items()   values()   keys()

print(dict2.items())

#for i in dict2.items():
#	print(i)

for key,value in dict2.items():
	#print(key,value)
	if value>90:
		print(key)
		
#values: 取出字典中所有值 
result = dict2.values()
print(result)

#求所有学生考试成绩平均分
for score in dict2.values():
	print(score)

scores = dict2.values()

totle = sum(scores)

avg = totle/len(dict2.values())

print(avg)
	
#keys()  获取字典中的所有key键   (键值对)

names = dict2.keys()
print(names)

for name in names:
	print(name)
	
	
#找人:  in   也可以用于字典操作  用于判断元素有没有在字典的key中出现

# 8 in list1

print('王五' in dict2)	
	
'''
1.根据key获取值,如果key在字典中没有存在则报出keyError
	dict[key] = value
2.字典的内置函数:
	get()  --------->value   如果取不到到值则不会报错,则返回None
	get(key,defalut)  -------->value 如果能取到值则返回字典中的值,如果取不到则返回default的值
'''
#print(dict2['赵飞'])

print(dict2.get('赵飞'))   #None
print(dict2.get('赵飞'),99)
	

4.python字典中的删除


#增加  改  查  (key) 删除
#删除:
list1 = [3,7,9,0]

del list1[1]  #根据下标删除

print(list1)
dict1 = {'张三':100,'李四':100,'王五':89,'赵柳':99}

#del dict1['王五']  #根据key删除

#print(dict1)

#del dict1['haha']   #KeyError: 'haha'

#字典中内置函数  : 删除 

#dict1.remove('李四') 不存在 #AttributeError: 'dict' object has no attribute 'remove'

# pop(key[,default])  ----->  根据key删除字典中的键值对,返回值是   只要删除成功,则返回键值对的值value
#							  pop的默认值,往往是在删除的时候没有找到对应的key,则返回default默认值
result = dict1.pop('李四')    
print(result)   #output  100

result = dict1.pop('张小三','字典中没有此键')
print('=======>',result)


print(dict1)	#output   {'张三': 100, '王五': 89, '赵柳': 99}

#popitem():随机删除字典中键值对(一般是从末尾删除)
dict1 = {'张三':100,'李四':100,'王五':89,'赵柳':99}

result = dict1.popitem()
print(result)

print(dict1)

resutl = dict1.popitem()
print(result)

print(dict1)

# clear()  同列表的clear()
dict1.clear()

print(dict1)

'''
#删除:
del dict[key]

dcit.pop(key[,default])

dict.popitem()

dict.clear()


'''
'''
其他的内置函数
update()   []+[]  合并
fromkeys(seq)  ---------->将seq转成字典的形式  如果没有指定默认的value则用None 
				new_dict = dict.fromkeys(list1)	  {'aa': None, 'bb': None, 'cc': None}
			   ----------->如果指定default,则用default替代None这个vaule值

new_dict = dict.fromkeys(list1,10)     {'aa': 10, 'bb': 10, 'cc': 10}
'''						  
print('--------------------')
dict1 = {0:'tom',1:'jack',2:'lucy'}

dict2 = {0:'lily','4':'ruby'}

result = dict1.update(dict2)

print(dict1)   #{0: 'lily', 1: 'jack', 2: 'lucy', '4': 'ruby'}
print(result)

#dict1 = dict1 + dict2
#print(dict1)  #TypeError: unsupported operand type(s) for +: 'dict' and 'dict'


print('++++++++++++++++')
list1 = ['aa','bb','cc']

new_dict = dict.fromkeys(list1,10)

print(new_dict)
	

	
发布了27 篇原创文章 · 获赞 3 · 访问量 689

猜你喜欢

转载自blog.csdn.net/weixin_43849280/article/details/103447002