当前位置:网站首页 > 编程语言 > 正文

增删改查四个命令语句(增删改查基本语句)



二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法

比如字典有1~100的数据,现在想要查找75。

先劈一半,找到中间值50。判断50和75的大小,发现小于,再劈一半。

找到中间值75,直接返回结果。

执行输出:

字典可以存放各种数据类型

数据类型的分类:
可变数据类型(不可哈希):list,dict,set
不可变数据类型(可哈希):int,bool,str,tuple
容器类型:
容器类(承载各种数据类型):list,tuple,dic

字典的键:必须是不可变数据类型
字典的值:任意数据类型。

字典的键是唯一的。

数据类型分类,主要是可变和不可变

字典的顺序:
严格意义上来讲,是无序的
3.5之前,字典是无序的
3.6开始,字典创建的时候,按照一定的顺序插入的值,看起来是有序的

下面介绍字典的增删改查


第一种:

执行输出:

{'age': 21, 'hobby': 'girl', 'name': 'xiao'}

第二种:

setdefault() 无则添加,有则不变

执行输出:

{'hobby': None, 'name': 'xiao', 'age': 21}

dic.setdefault('hobby') 虽然只指定了key,没有指定value,默认会填充None

添加键值对

执行输出:

{'age': 21, 'name': 'xiao', 'hobby': 'girl'}

添加一个已经存在的key

执行输出:

{'name': 'xiao', 'age': 21}

上述2个添加的方法,只能一个个添加。

pop() 删除指定的key

pop()是所有方法中,唯一有返回值的。

执行输出:

删除一个不存在的key

执行报错: KeyError: 'hobby'

删除一个不存在的key,并指定默认返回值None

执行输出:

推荐使用上述方法,删除一个key。因为如果key不存在时,不会报错,返回None。程序员最怕报错了!

clear() 清空

执行输出:

{}

del 删除字典

del也可以删除指定的key,如果不存在,会报错

推荐使用pop删除,并指定None

popitem() 随机删除,有返回值

执行输出:

执行输出:

{'name': 'zhangsan', 'age': 21}

update() 针对2个字典的修改

执行输出:

可以发现dic没有改变,dic2改变了

update()修改原则

有相同的就覆盖,没有的就添加

通过key查找

执行输出:

xiao

通过value查询

执行报错: KeyError: 'xiao'

字典只能通过key查询,不能通过value查询,否则报错

get() 通过key查询

执行输出:

xiao

查询一个不存在的key

执行输出:

None

默认的None返回值是可以改变的

执行输出:

亲,木有这个字哦!

如果需要查询多个key,请使用for循环

执行输出:

其它操作方法:

keys() values() items()

keys()

执行输出:

keys()方法输出的数据是一个特殊类型,它相当于把所有的key放到了一个容器里面。

它类似于列表的容器,当它并不是列表。

它可以循环

执行输出:

values()

把所有的value放到一个容器里面

执行输出:

items()

将键值对作为一个整体,放到元组中。集中放到一个容器中。

执行输出:

特殊类型转换为列表

执行输出:

['age', 'name']

分别循环key和value

执行输出:

现有如下字典,需要遍历key

第一种写法:

第二种写法:

以上2段代码,功能是一样的。推荐使用第二种。

概念: 分别赋值

比如

执行输出:

2 3

面试题:

a = 4,b = 5,请用一行代码,将a和b的值互换。

答案

字典的嵌套

出一个题目

1. 给列表追加一个元素:'旺旺'
2. 给列表lisi全部大写
3. 给dic2 对应的字典添加一个键值对:hobby:girl

答案:

执行输出:

{'name_list': ['张三', 'lisi', '隔壁王叔叔', '旺旺'], 'dic2': {'name': '太白', 'age': 12}}
{'name_list': ['张三', 'LISI', '隔壁王叔叔', '旺旺'], 'dic2': {'name': '太白', 'age': 12}}
{'name_list': ['张三', 'LISI', '隔壁王叔叔', '旺旺'], 'dic2': {'hobby': 'girl', 'name': '太白', 'age': 12}}

今日作业:

答案:

第1题

第2题

第3题:

第4题

4、有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}

先使用split()指定分割符| 切割成列表

执行输出:

k:1
k1:2
k2:3
k3:4

在for循环里面是,指定分割符:,再次切割

执行输出:

['k', '1']
['k1', '2']
['k2', '3']
['k3', '4']

那么列表中索引为0的就是key,索引为1就是value

使用字典方法添加键值对,完整代码如下:

执行输出:

{'k1': '2', 'k2': '3', 'k': '1', 'k3': '4'}

代码优化

执行输出:

{'k3': '4', 'k2': '3', 'k': '1', 'k1': '2'}

将数字转换为整形

执行输出:

{'k2': 3, 'k': 1, 'k1': 2, 'k3': 4}

第5题:

5、元素分类
有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}

先打印列表的每一个元素

执行输出:

11
22
33

...

90

定义字典,将大于66的,放入k1的列表中

执行输出:

{'k2': [], 'k1': [77, 88, 99, 90]}

将小于66的放入k2中,完整代码如下:

执行输出:

{'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 90]}

由于66跑到k2里面了,在改一下判断条件

执行输出:

{'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55, 66]}

第6题

先输入商品列表,并打印序号(使用index方法)

6.1

执行输出:

0 手机
1 电脑
2 鼠标垫
3 游艇

有了序号,就可以打印商品

判断用户的输入的内容是否为数字,定义一个非法字符串aa

6.2

执行输出:

您输入的含有非数字元素

判断用户输入的数字是否大于列表的长度,定义一个数字11

6.3

执行输出:

你输入的序号商品不存在,请重新输入!

重新修改数字为1,再次执行,就可以输出商品了。

上面的代码是一次性输入,如果需要循环执行,怎么办?用while循环

先来一个简单的循环输入input,根据第4点要求,遇到Q或者q,退出程序

6.4

执行程序:

执行执行之前,打印商品列表

6.5

执行输出:

将6.3里面的for循环代码复制,替换到6.5里面pass里面,最后代码如下:

执行输出:

输出部分修饰一下:

执行输出:

代码优化:

执行效果同上:

再次优化

执行输出:

调整序号,加1。取值的时候,再减1

执行输出:

老师的代码:

执行输出:

明日默写内容。
1)字典的增删改查。

  

2)过滤敏感字符代码的默写。

  

  

到此这篇增删改查四个命令语句(增删改查基本语句)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 网页传输文件怎么弄(怎么把网页传到网上)2025-01-11 07:45:09
  • 阻塞队列是什么(阻塞队列在外存还是内存)2025-01-11 07:45:09
  • 断开连接是什么意思(打电话断开连接是什么意思)2025-01-11 07:45:09
  • 圈1符号(圈1符号手机)2025-01-11 07:45:09
  • linux直接删除目录(linux删除整个目录)2025-01-11 07:45:09
  • max319中文资料(max3160中文资料)2025-01-11 07:45:09
  • Linux安装yum命令(linux安装yum命令在线安装)2025-01-11 07:45:09
  • 耳机怎么断开连接另一手机(无线耳机如何断开连另一台)2025-01-11 07:45:09
  • 反编译exe文件工具ilspy(.exe文件反编译)2025-01-11 07:45:09
  • ssh免密码登录配置linux(ssh免密码登录配置步骤)2025-01-11 07:45:09
  • 全屏图片