字典
字典的访问
# 字典的访问,通过键访问值。
di = {'a':1, 'b':2, 'c':3}
print(di['a']) >>1
# 其他访问方式
print(di.keys()) >> di_keys(['a', 'b', 'c']) # keys() 方法获取所有的键
print(di.values()) >> di_values([1, 2, 3]) # values() 方法获取所有的值
print(di.items()) >> di_items([('a', 1), ('b', 2), ('c', 3)]) # items() 方法获取所有元素
字典的添加
# 字典变量[键] = 值 (默认添加在字典的末尾)
di = {'a':1, 'b':2, 'c':3}
di['d'] = 4
print(di) >>{'a':1, 'b':2, 'c':3, 'd':4}
# 方法2:update()
di = {'a':1, 'b':2, 'c':3}
di.update(d=4)
print(di) >>{'a':1, 'b':2, 'c':3, 'd':4}
字典的修改
# 方法一,update() 方法修改
di = {'a':1, 'b':2, 'c':3}
di.update(a=6)
print(di) >>{'a': 6, 'b': 2, 'c': 3}
# 方法二,通过指定键修改元素
di = {'a':1, 'b':2, 'c':3}
di['a']= 6
print(di) >>{'a': 6, 'b': 2, 'c': 3}
字典元素的删除
# 1. pop() 方法
di = {'a':1, 'b':2, 'c':3}
print(di.pop('a')) >>1 # 删除后返回被删除的值
print(di) >>{'b': 2, 'c': 3}
# 2. popitem() 方法 随机删除并返回被删除的元素。
di = {'a':1, 'b':2, 'c':3}
print(di.popitem()) >> ('a', 1) # 随机删除后返回被删除的元素,此次假设随机删除('a', 1)
print(di) >>{'b': 2, 'c': 3}
# 3. clear() 方法 清空字典,和列表的使用方法相同
知识拓展
如何将列表中的多个元素合并为一个元素
list = ['a', 'b', 'c']
newList =''.join(list)
print(newList) >> ['abc']
列表如何转化为字典
# 方法1,dict()函数
list = ['a', 'b', 'c']
dictionary = dict(enumerate(list))
print(dictionary) >> {0:'a', 1:'b', 2:'c'}
# 方法2,zip()函数
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary) >> {'a':1, 'b':2, 'c':3}
# 方法3,字典推导式
list = ['a', 'b', 'c']
dictionary = {index:value for index, value in enumerate(list)}
print(dictionary) >> {0:'a', 1:'b', 2:'c'}
课后练习1
# 请将列表l1 = [4, 5, 2, 7] 和 l2 = [3, 6]合并,并将列表元素按照降序排列。
l1 = [4, 5, 2, 7]
l2 = [3, 6]
l3 = l1 + l2
print(l3)
l3.sort(reverse = True)
print(l3)
# 向元组t =('a', 'b', 'c', ['d', 'e'])最后一个列表中添加一个新元素’h‘
t =('a', 'b', 'c', ['d', 'e'])
t[3].append('h')
print(t)
# 统计字符串str = 'fkhajghfak' 各个字母出现的次数
str = 'fkhajghfak'
count = {}
for i in str:
if i in count:
count[i]+=1
else:
count[i]=1
print(count)
# 已知列表 list = [1, 4, 4, 1, 5, 7, 8],请删除相同的元素
list = [1, 4, 4, 1, 5, 7, 8]
newList=[]
for i in list:
if i not in newList:
newList.append(i)
print(newList)
课后练习2
题目
-
已知使用列表保存5名员工的工资,然后计算最高工资,最低工资和平均工资
-
使用列表保存5名员工的姓名,然后随机抽取1名幸运员工获得中秋大礼包。
-
使用列表保存10名员工的姓名,然后随机抽取2名幸运员工获得中秋大礼包。
-
编写python程序,实现“十大歌手打分”格则如下:每名歌手演唱完毕后由评委组的6名评委打分,为保证公平,计算得分时(即打分的平均分)要先去掉最高分和最低分。循环输入5名选手的分数并计算他们的最终得分。
-
《青春有你》采用计票机制,选手获得的票数越多,排名就越靠前。要求编程,接收选手的姓名和票数,输出排序后的成绩
-
使用字典及程序控制语句实现控制台下的游戏菜单的输出功能,效果如图:
7. 编写程序,实现具备添加、查看、修改和删除联系人信息功能的手机通讯录
7. 编程实现“神奇魔方阵”,魔方阵是一种n行n列、由自然数1---n*n组成的方阵,该方阵中的数符合如下规律。
1)方阵中的每个元素不相等
2)每行、每列以及主、副对角线上的元素之和都相等
输出一个5行5列的魔方阵
答案代码
# 题1
gz = []
sum = 0
for i in range(1,6):
cj=int(input("请输入第%d位员工的工资:"%i))
gz.append(cj)
for j in gz:
sum += j
print("员工工资分别是:",gz)
print("最高工资:",max(gz))
print("最低工资:",min(gz))
print("平均工资:",sum / 5)
# 题2
name =[]
for i in range(1,6):
mz=int(input("请输入第%d员工的姓名:"%i))
name.append(mz)
print('员工的名单如下:',name)
import random
e = random.randint(1,5) # 1 - 5随机生成一个数。
print(name[e],"给这名员工送上中秋礼物")
# 题3
name =[]
for i in range(1,11):
mz=int(input("请输入第%d员工的姓名:"%i))
name.append(mz)
print(name)
import numpy as np
e = np.random.randint(1,11,2)
print(f"给名为{name[e[0]]}、{name[e[1]]}的员工送上中秋礼物")
#改进,
# e=random.randint(1,11)
# d=random.randint(1,11)
# while e==d:
# j=random.randint(1,11)
# print("2名幸运员工",gzb[e],gzb[d])
# 题目4
fenshu=[]
for i in range(1,7):
dafen=int(input("请输入第%d选手的得分:"%i))
fenshu.append(dafen)
print(fenshu)
max=max(fenshu)
min=min(fenshu)
fenshu.remove(max)
print(fenshu)
fenshu.remove(min)
print(fenshu)
avg=sum(fenshu)
print("选手的平均分是",avg)
# 题目5
tps=[]
for i in range(1,6):
ps=int(input("请输入第%d选手的票数:"%i))
tps.append(ps)
# print(tps)
tps.sort(reverse=True)
print('降序排列后的统计结果是:',tps)
# 题目6
print("1.青龙刀 加攻击20 价格200")
print("2.多兰刀 加攻击30 价格300")
print("3.诸葛弓 加攻击40 价格800")
d1={1:"青龙刀 加攻击20 价格200",
2:"多兰刀 加攻击30 价格300",
3:"诸葛弓 加攻击40 价格800"}
choose=int(input("请选择购买装备的编号"))
print("你购买的是:",d1.get(choose))
# 题目7
#手机通讯录
#1.添加联系方式
print("1.添加联系方式")
d1={"a":"111","b":"222","c":"333"}
name=input("输入联系人名称:")
add_d1={"a":"111","b":"222","c":"333"}
teb=int(input("输入联系人电话:"))
add_d1[name]=teb
print(add_d1)
#查看联系人电话
print("2.查看联系人电话")
name1=input("输入要查看的联系人名称:")
print(d1[name1])
#修改联系方式
print("3.修改联系方式")
rm=input("输入联系人名称:")
teb=int(input("输入联系人变更电话:"))
modify_d1={"a":"111","b":"222","c":"333"}
# modify_d1.update(rm=teb)
modify_d1[rm]=teb
print(modify_d1)
#删除联系人联系方式
print("4.删除联系人联系方式")
name2=input("输入要删除的联系人名称:")
per_d1={"a":"111","b":"222","c":"333"}
print(per_d1.pop(name2))
print(per_d1)
# 题目8
game=[]
for i in range(1,26):
game.append(i)
print(game)
print(game[0:5])
print(game[5:10])
print(game[10:15])
print(game[15:20])