学编程:Python入门考级必备[10]
创始人
2024-03-22 03:13:57
0

知识模块(10) 浩如烟海--字典

1.定义字典

2.字典的操作

2.1查找操作

2.2 增加(修改)操作

2.3 删除操作

附件代码:

 炼 知识模块(10) 浩如烟海——字典


知识模块(10) 浩如烟海--字典

字典(dict)跟其他序列(列表/元组)格式有较大的差异,字典是用大括号{}定义,用键:值(key:value)存储数据。

可以把键(key) 当成索引,且键是唯一的!键必须是字符串、数字或元组。值(value)可以存任意类型的数据。


1.定义字典

空字典

dic = {}

print(type(dic))

dict() 字典函数:

格式:dict({key1:value1, key2:value2, key3:value3})

d = dict({"数":5 ,"列表":list(range(1,10)) ,  "元组":(1,1.5,"人")})

print(d)

可以发现:1.键与值是用":"冒号分割的;2.每个键值对都要以","逗号隔开。


2.字典的操作

foods = {"汉堡":15, "鸡腿":8, "可乐":3,"烧仙草":8, "薯条":8}

2.1查找操作

  • 字典名[索引]            ---输出值,没有索引会报错
  • 字典名.get(索引)     ---没有索引不会报错  None
  • 字典名.keys()          ---获取所有索引
  • 字典名.values()       ---获取所有值
  • 字典名.items()         ---获取所有(索引:值)

print(foods["鸡腿"])   # 输出值,没有索引会报错

print(foods.get("香辣鸡腿")) # 没有索引不会报错  None

# 获取所有索引: 字典名.keys()

print(foods.keys())

# 获取所有值: 字典名.values()

print(foods.values())

# 获取所有(索引:值)  字典名.items()

print(foods.items())

循环遍历获取键值

for i in foods.items(): # foods.values()

    print(i)

for i in foods:   # 直接遍历字典时,输出的是它的键值

     print(i)


2.2 增加(修改)操作

foods["糖水"] = 4  # 当没有键,就增加。

print(foods.items())

foods["糖水"] = 10  # 当有键,就修改。

print(foods.items())

格式:字典1.update(字典2)

取出字典2的键值对,键值对在字典1没有就添加进入;存在则修改原来的值。

foo = {"汉堡":"15元", "鸡翅":6}

foods.update(foo)  # 没有键就增加,有就更新值

print(foods.items())


2.3 删除操作

del 字典[键]  --删除一个键值对

字典.pop(键) --删除键值对默认返回删除的值

字典.clear() --清空字典

del foods["汉堡"]

print(foods.items())

foods.pop("可乐")

print(foods.items())

foods.clear()

print(foods.items())


题1:利用字典键:值的特点,制作一个电话号码查询系统

1、提示输入查询人的姓名

2、信息存在,打印出姓名,电话号码;

3、如果信息不存在,提示录入姓名,号码

4、循环重新查询

题2:实现统计字符串中的单词和单词出现的次数:

(1)统计的语句为:to be or not to be that is a question

(2)要求统计该句中出现的所有单词和其出现次数。

(3)使用字典进行输出,格式如下(排列顺序可不一致,但统计的次数要正确)。

{'to': 2, 'be': 2, 'or': 1, 'not': 1, 'is': 1, 'a': 1, 'question': 1, 'that': 1}


附件代码:

# 字典定义与赋值
dic = {} #空字典
print(type(dic))
# dict({key1:value1, key2:value2, key3:value3}) 
d = dict({"数":5 ,"列表":list(range(1,10)) ,  "元组":(1,1.5,"人")})
print(d)#可以发现:1.键与值是用":"冒号分割的;2.每个键值对都要以","逗号隔开。#2.字典的操作
foods = {"汉堡":15, "鸡腿":8, "可乐":3,"烧仙草":8, "薯条":8}'''2.1查找操作
字典名[索引]  	 ---输出值,没有索引会报错
字典名.get(索引)     ---没有索引不会报错  None
字典名.keys()	---获取所有索引
字典名.values()	---获取所有值
字典名.items()	---获取所有(索引:值)'''print(foods["鸡腿"]) 	 # 输出值,没有索引会报错
print(foods.get("香辣鸡腿"))     # 没有索引不会报错  None
# 获取所有索引: 字典名.keys()
print(foods.keys())
# 获取所有值: 字典名.values()
print(foods.values())
# 获取所有(索引:值)  字典名.items()
print(foods.items())# 循环遍历获取键值
for i in foods.items():print(i)
for i in foods:   # 直接遍历字典时,输出的是它的键值print(i)#2.2 增加(修改)操作
foods["糖水"] = 4	 # 当没有键,就增加。
print(foods.items())
foods["糖水"] = 10 	 # 当有键,就修改。
print(foods.items())#格式:字典1.update(字典2) 
#取出字典2的键值对,键值对在字典1没有就添加进入;存在则修改原来的值。foo = {"汉堡":"15元", "鸡翅":6}
foods.update(foo) 	 # 没有键就增加,有就更新值
print(foods.items())#2.3删除操作
#del 字典[键]       --删除一个键值对
#字典.pop(键)      --删除键值对默认返回删除的值
#字典.clear()        --清空字典
del foods["汉堡"]
print(foods.items())
foods.pop("可乐")
print(foods.items())
foods.clear()
print(foods.items())'''题1:利用字典键:值的特点,制作一个电话号码查询系统。
1、提示输入查询人的姓名
2、信息存在,打印出姓名,电话号码;
3、如果信息不存在,提示录入姓名,号码
4、循环重新查询'''tel = {"张三":"1345611235","李四":"1356974001"}
while True:name = input("输入姓名: ")if name in tel:print(name,tel.get(name))elif name=="#":breakelse:phone = input("电话号码:")tel[name] = phone
print(tel.items())'''题2:实现统计字符串中的单词和单词出现的次数:
(1)统计的语句为:to be or not to be that is a question
(2)要求统计该句中出现的所有单词和其出现次数。
(3)使用字典进行输出'''
string = "to be or not to be that is a question" #定义变量存储字符串
lis=string.split(" ")	#使用分割函数将字符串转为列表
count={}	#定义一个空字典
for x in lis:	#遍历列表if x not in count:	#判断列表元素是否在字典中count[x]=1else:count[x]+=1
print(count)	#打印字典

 炼 知识模块(10) 浩如烟海——字典

1.执行下列代码,输出的结果是?(    )

dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

dic.pop('b') 

del dic['d']

dic['d'] = 4 

print(dic)

A.{'a': 1, 'b': 2, 'c': 3,'d':4}   B.{'a': 1, 'c': 3, 'd': 4} 

C.{'a': 1, 'c': 3}     D.{'d': 4}

2.下列代码的运行结果是?( )

a={'xm':'zhangsan'}

b={'sg':175,'tz':'55kg'}

b.update(a)

len(b)

A.2         B.3         C.4         D.6

3.以下关于字典特性的描述正确的是?( )

A.字典支持位置索引   

B.字典里面的值(不是键)可以包含列表和其他数据类型

C.字典是一种有序的对象集合

D.字典中的数据可以进行切片

4.在某学校,张三、李四、王五三名同学对应的学号分别是100、101、102。现将他们学号与姓名对应的关系存入字典id_name中,关于以下代码段的描述,错误的是?( )
id_name = {101: '张三', 102: '李四', 103: '王五'}
name_id = {}
name_id[id_name[101]] = 101
name_id[id_name[102]] = 102
name_id[id_name[103]] = 103
print(id_name == name_id)

A.在字典id_name中,只能通过学号查找对应的姓名,不能通过姓名查找对应的学号。

B.上述代码是将id_name中姓名作为键、学号作为值构建了一个新的字典name_id。

C.上述代码执行后,字典name_id为:{'张三': 101, '李四': 102, '王五': 103}。

D.上述代码输出的结果为:True。

5.对于字典infor = {"name":"tom", "age":13, "sex":"male"},删除"age":13键值对的操作正确的是?(    )

A.del infor['age']         B.del infor["age":13]

C.del infor         D.infor.clear()

6.已知字典score={"语文":95,"数学":93,"英语":97}, 则执行print(score["语文"]+score["数学"]//2),输出的结果为?(    )

A.141         B.141.5         C.94         D.94.0

7.下列程序运行的结果是?(    )

infor = {"name":"tom", "age":13, "sex":"male"}

print(len(infor))

A.6         B.3         C.4         D.1

8.执行下列代码后,运行结果是?(    )  

seq=['hello','good','morning']  

s='*'.join(seq)

print(s)

A、hello*good*morning*         B、*hello*good*morning

C、hello*good*morning         D、*hello*good*morning*

9.以下语句不正确的是?(      )

A、dict={1:'a'}         B、a={'name':'bob'}

C、e={[1]:'篮球'}         D、c={'school':'精英小学'}

10. d1={'学科':'语文','班级':'2班','最高分':99}

d2={'学科':'数学','班级':'2班','最高分':100}

d1.update(d2)

print(d1)

以上代码的运行结果为?(    )

A. {'学科':'语文','班级':'2班','最高分':99}

B. {'学科':'语文','班级':'2班','最高分':100}

C. {'学科':'数学','班级':'2班','最高分':100}

D. {'学科':'数学','班级':'2班','最高分':99}

11.若dic_color={'red':'红色','green':'绿色','gold':'金色','brown':'棕色','purple':'紫色'},

以下选项中能够输出'金色'的是?(     )

A. print(dic_color['gold'])         B. print(dic_color['金色'])

C. print(dic_color[2])         D. print(dic_color.values[2])

12.下面代码的输出结果是?(    )

a={'sx':90,'yuwen':93,'yingyu':88,'kexue':98}

print(a['sx'])

A.93         B.90         C.88         D.98

13.下列不属于Python中处理字典的方法是?(      )

A. pop()         B.replace()         C.get()         D.popitem()

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...