python中dict字典的简单了解

'''
概述:
使用键-值(key-value)存储,具有极快的查找速度
注意!!:字典是无序的

key的特性:
1、字典中的key必须唯一
2、key必须是不可变的对象
3、字符串、整数都是不可变的,可以作为key
4、list是可变的,不能作为key

思考:保存多位学生的姓名和成绩

使用字典,学生姓名为key,学生成绩作为值

list用[]
tuple用()
dict用{}

'''
#get 如果key不在字典中则会返回None


dict1={"tom":60,"li":70}#存两个人的信息
#元素的访问
#获取:字典名[key]
print(dict1["tom"]) # 60
#print(dict1["lilei"]) #没有会报错
print(dict1.get("lilei"))#访问get中的支付串,如果没有会返回None
'''
dict1={"tom":60,"li":70}
#输入一个人名,查找其成绩
index=str(input("请输入你要查找的人名"))
ret =dict1.get(index)#查找字典中是否有输入的人
if ret==None:
print("没有该学员")
else:
#print("有该学员") #60
print(dict1.get(index))
'''
#添加
dict1["hanmeimei"]=99#添加key和value
#因为一个key对应一个value,所以多次队一个Key的value赋
# 值,其实就是修改值
dict1["li"]=80#修改key 的值
print(dict1)#{'tom': 60, 'li': 80, 'hanmeimei': 99}

#删除
dict1.pop("tom")
print(dict1)



#遍历

for key in dict1:
print(key,dict1[key])#hanmeimei 99

#print(dict1.values())

#values()只提前成绩
for value in dict1.values():#提取所有成绩,
print(value)#
# 60
# 80
# 99

#items()提前名和成绩
for k,v in dict1.items():#提前key和value
print(k,v) #tom 60
#li 80
#hanmeimei 99
#enumerate()排序后取出名(key)
for i,v2 in enumerate(dict1):#给字典排序后提取
print(i,v2)# 0 tom
# 1 li
# 2 hanmeimei


#dict和list比较
#1、查找和插入的速度极快,不会随着key-value的增加而变慢
#2、需要占用大量内存,内存浪费多
'''
a=input()
#a="low"
str="ONG IS a low team. ONG IS a low team." \
" ONG IS a low team. ONG IS a low team. ONG IS a low team. ONG IS a low team." \
" ONG IS a low team. ONG IS a low team. ONG IS a low team." \
" ONG IS a low team. ONG IS a low team."

print(sr.count(a))#查找字符在字符串中出现的次数,可以单词,也可以是
一个字母
'''
'''
在字符串中找到输入的字符出现次数,如果没有会报错

a=input(“输入想要找的单词”)#输入一个要找的字符
d={} #定义一个空字典
str="ONG IS a low team. ONG IS a low team." \
" ONG IS a low team. ONG IS a low team. ONG IS " \
"a low team. ONG IS a low team." \
" ONG IS a low team. ONG IS a low team. ONG IS a low team." \
" ONG IS a low team. ONG IS a low team."
x=str.split(" ")#按空格选取字符串,并赋值给x
for v in x: #循环处理列表中的每一个元素
c=d.get(v) #提取x中单词,如果字典中没有,则返回None,并将这个作为key存入字典
if c==None:
d[v]=1 #给字典中的key赋值对应的value
else:
d[v]+=1
if a!=d[v]:
print("字符串中没有该单词!")
else:
print(d[a])
#print(len(x))#计算一个有多少个单词
如果输入没有的会报错
1、以空格切割字符串
2、循环处理列表中的每个元素
3、以元素当做key去字典中提前数据
4、如果没有提前到,就以该元素作为key,1作为value存进字典
5、如果提前到,将对应的key的value修改,值加1
6、根据输入的字符串当做key再去字典取值
'''
posted @ 2019-02-24 14:33  飞飞阿  阅读(260)  评论(0编辑  收藏  举报