Python字典相关

字典

字典的访问
# 字典的访问,通过键访问值。
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

题目
  1. 已知使用列表保存5名员工的工资,然后计算最高工资,最低工资和平均工资

  2. 使用列表保存5名员工的姓名,然后随机抽取1名幸运员工获得中秋大礼包。

  3. 使用列表保存10名员工的姓名,然后随机抽取2名幸运员工获得中秋大礼包。

  4. 编写python程序,实现“十大歌手打分”格则如下:每名歌手演唱完毕后由评委组的6名评委打分,为保证公平,计算得分时(即打分的平均分)要先去掉最高分和最低分。循环输入5名选手的分数并计算他们的最终得分。

  5. 《青春有你》采用计票机制,选手获得的票数越多,排名就越靠前。要求编程,接收选手的姓名和票数,输出排序后的成绩

  6. 使用字典及程序控制语句实现控制台下的游戏菜单的输出功能,效果如图:

在这里插入图片描述

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])
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值