字典:一系列键-值对,键-值相关联
实例:第一个职工名叫Sam,在岗
staff_1={'name':'Sam','present':True}
print(staff_1['name'])
print(staff_1['present'])
1.向字典添加值
实例:Sam今年26岁,男性
staff_1['age']=26
staff_1['gender']='male'
print(staff_1)
print(staff_1['age'])
2.创建字典
实例:第二名职工叫Alan,请假,年龄27,女性
staff_2={}
staff_2['name']='Alan'
staff_2['present']=False
staff_2['age']=27
staff_2['gender']='female'
print(staff_2)
3.修改字典中的值
实例:Alan已到岗
staff_2['present']=True
print(staff_2)
4.删除字典中的项
实例:删除字典中两人的年龄数据
del staff_1['age']
del staff_2['age']
print(staff_1)
print(staff_2)
5.查询字典
staff_1['present'] # 等价于:
staff_1.get['present']
6.遍历字典
staff={
'Alex':1,
#注意逗号
'Jack':2,
'Mike':0,
'Leo':1,
'Pluto':1,
'Hill':1,
'Samuel':2,
'Edward':0,
'Steven':2,
'Tom':1
}
work=[]
meet=[]
absent=[]
完整遍历时for后面的变量格式为key,value
in后面的格式为dict.items()
#注意.items()的括号不能遗漏
for name,present in staff.items():
print(name,end=' ')
if present==1:
print('is working.')
work.append(name)
elif present==2:
print('is at the meeting.')
meet.append(name)
else:
print('is absent')
absent.append(name)
print(work)
print(meet)
print(absent)
也可以只遍历键 for key in dict.keys()
或值 for value in dict.values()
for name in staff.keys():
if name in work:
print('I see '+name+' in the office.')
elif name in meet:
print('I see '+name+' having meeting.')
print('\n')
排序遍历 sorted()
for name in sorted(staff.keys()):
if name in work:
print('I see '+name+' in the office.')
elif name in meet:
print('I see '+name+' having meeting.')
获取字典的长度:len(dict)
7.字典嵌套
job='job'
age='age'
sal='salary_per_month'
Sam={
job:'management',
age:29,
sal:6000,
}
Tom={
job:'teacher',
age:32,
sal:5000,
}
Pam={
job:'waiter',
age:30,
sal:4000,
}
staff=[Sam,Tom,Pam]
for person in staff:
print(person)
print(person[age])
print(person[sal])
输出整个嵌套列表
print(staff)
实例:创建一组字典
list=[]
for a in range(20):
new={
'num':a,
'name':'test'
}
list.append(new)
print(list)
读取前十个
for i in list[:10]:
print(i['name'])
修改前五个
for i in list[:5]:
i['name']='beta'
print(list)
字典中储存字典
job='job'
age='age'
sal='salary_per_month'
staff={
'Sam':{
job:'management',
age:29,
sal:6000,
},
'Tom':{
job:'teacher',
age:32,
sal:5000,
},
'Pam':{
job:'waiter',
age:30,
sal:4000,
},
}
for person,info in staff.items():
print(person,end=' is a ')
print(info[job],end='.\n')
输出整个嵌套列表
print(staff)
#实例:喜欢的语言
list={
}
empty={}
for person,language in list.items():
print(person+'喜欢'+language+'. ')
while True:
print('接下来你想要干什么?\
(请输入操作对应的代码并按回车键\
确认)\n\
0-退出\n\
1-输出\n\
2-插入或修改\n\
3-删除\n\
4-查找')
i=input()
if i>='0' and i<='4':
i=int(i)
else:
print('输入错误,请重新输入。')
if i==0:
exit(0)
elif i==1:
if list==empty:
print('这里没有人啊。')
for person,language in list.items():
print(person+'喜欢'+language+'. ')
elif i==2:
n=0
while(not n):
print('请输入要插入的人的姓名:')
name=input()
x=0
for person in list.keys():
if person==name:
print('此人已存在。')
x=1
if x==1:
print('请输入要修改的编程语言:')
else:
print('请输入编程语言:')
lang=input()
list[name]=lang
print('是否继续插入?是请输入0,否则输入其他字符')
n=input()
if n=='0':
n=0
else:
n=1
elif i==3:
print('请输入要删除的人的姓名:')
name=input()
x=0
for person in list.keys():
if person==name:
del list[name]
x=1
break
if x==0:
print('列表中没有这个人')
elif i==4:
like=[]
print('请输入要查找的关键字或值:')
search=input()
x=0
for name,lang in list.items():
if search==name:
print('这是一个人。他(她)\
喜欢'+lang)
x=2
elif search==lang:
print('这是一种编程语言。')
like.append(name)
x=1
if x==0:
print('查无此人(或编程语言)。')
elif x==1:
print('喜欢这种编程语言的有:')
for name in list.keys():
print(name+' ')