要求: 新增一个员工时,如果该员工已存在(以员工号f_emp_code作为判断依据),则更新,否则插入。而且工资f_salary,更新时,不得低于原工资(即:工资只能涨,不能降)。..., '西安' , 1000 FROM DUAL WHERE NOT EXISTS( SELECT * FROM t_emp WHERE f_emp_code = '10007' ); 更新...(根据表上的唯一键),如果存在,先delete,然后再insert。...这个方法有一个很大的问题,如果记录存在,每次执行完,主键自增id就变了(相当于重新insert了一条),对于有复杂关联的业务场景,如果主表的id变了,其它子表没做好同步,会死得很难看。...该方法,没有replace into的副作用,不会导致已存在记录的自增id变化。
2、使用setdefault()方法也可以向字典追加新的键值对,并返回当前追加的值。...3、如果dict.setdefault()方法追加的键已经存在,则不会追加,仅返回该键对应的值 4、字典的增、删、改、查:【删】 使用del、pop()和clear()方法,可以删除一个或全部的键值对。...2、使用update()函数也可以将一个新的字典的值,更新到指定的字典。遇到相同的键,修改其值,不同则追加。 3、也可以将一个元组的列表作为update()函数的参数,用来更新一个指定的字典。...前面的介绍已经知道,如果dict2中存在dict1中的键值,将会用dict2中的值,替代dict1中的值,而不是追加。这样,当两个dict合并时,能够形成完美的叠加,而不会出现有重复的键值对。...) #返回指定键的值,如果键不存在,返回default值 dict.setdefault(key, val) #和get()类似,但如果键不存在,则添加该键值对 dict.items()
本节课涉及的知识 Python中的字典: Python种的字典由键(key)和值(value)组成。键(key)相当于我们日常生活中字典的页码,是一种索引或者说地址,每一个键都对应一个值。...字典中存在键k则为返回True,没有则返回False k not in a Equivalent to not k in a 字典中不存在键k则为返回true,反之返回False a.has_key.../value pairs from b 从b字典中更新a字典,如果键相同则更新,a中不存在则追加 a.fromkeys(seq[, value]) Creates a new dictionary with...x (also setting it) 得到a[k],若不存在返回x,并设定为x a.pop(k[, x]) a[k] if k in a, else x (and remove k) 弹出a[k]...,若不存在则返回x,同时将删除k键 a.popitem() remove and return an arbitrary (key, value) pair 弹出a中对象的键和值,并删除弹出的键和值 a.iteritems
13、字典的查询 14、字典的遍历 15、集合的定义 16、集合的相关操作 1、列表的查询 index:从左至右查询元素在列表中所处的位置,如果查询到该元素返回其第一次出现所在位置的正向下标,如果不存在则报错...} print(dict7) 10、字典的增加 字典[新的key] = 值 如果key在原字典中已经存在则为修改原key对应的值 # 增 使用新的键 = 值的形式增加键值对 dict1 = {'name...':'xiaoming', 'age': 18} # 使用新的键= 值 # 格式:字典变量[key] = 值 如果为新增,则key在原字典中不存在 dict1['gender'] = '男' print...# dict1.update(name='小绿') dict1.update({'name': '小绿'}) print(dict1) 13、字典的查询 使用键查询值:字典[key] 查询的键不存在时则报错...,则去重 update: 更新元素(在括号中添加可迭代类型),如果值已存在则去重 # add 增加 set1 = {1, 2, 3, 4} # set 在使用add命令后,不会产生新的数据,而是原集合中进行修改
字典: ---- 简单字典: dic = {1:'a',2:'b',3:'c'} 嵌套字典:字典中可包含元组、列表、字典 dic = {1:'a',2:'b',3:'c',4:{1:'a',2:'b'... dic.pop(k[,d]) 弹出 k代表key,必须指定,返回被弹出的value;d代表default,当key不存在时返回值是default,如果不指定default会报错 dic.setdefault...复制字典,有新的id,一般通过dic1 = dic.copy() 的方式获取新的字典 dic.get(k[,d]) 获取键值 k代表key,d代表default,当key不存在时返回default...dic.update([E, ]**F) 更新,E是字典或者iterable,当key存在时则更新key的value;当可以不存在时追加新的key,value 以上常用的有get update copy...打印: for key in dic: print(dic[key]) 遍历的是key,当value是列表或者字典时,可以通过for循环嵌套打印
(obj):删除指定元素,没有返回值;如果存在多个,则删除第一个元素 排序 sort:obj.sort(key=len) sorted:sorted(obj);默认是从小到大排序 bisect模块:import...用途 元组表列表操作速度快; 在进行遍历操作的时候,请用元组代替列表 如果对不需要修改的数据进行“写保护”,即改数据是常量,也要使用元组;如果需要改变这些值,转换为列表进行修改 元组在字典中可以当做key...del:del dict[k1],内存中也没有了 clear:D.clear()变成了空字典,但内存中仍存在 pop:D.pop(k[,d]),以字典的键为参数,删除键值对 更新 update:更新字典...的值value:dict.get(k, [,d])键不存在返回指定的值d setdefault 类似get方法,如果键不存在,返回指定的值,并在字典中增加这个键值对;如果不指定返回值,默认是None...比如**default(int)**则创建一个类似dictionary对象,里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是*int()
Out[90]: {'key1': None, 'key2': None, 'key3': None} 使用字典函数创建字典: In [91]: dict((['...','age':24,'address':'Beijing'} In [93]: d['name'] Out[93]: 'tcq' 字典更新...:键值有则更新,无则添加 In [94]: d['new_key']='new_key' In [95]: d Out[95]:...- iterkeys()返回字典dict的键的迭代对象 - itervalues()返回字典dict的值的迭代对象 - setfault(k,[d])如果键在字典中,则返回键对应的值...,如果不在,则创建该键,值为默认的None或者是d In [7]: d.setdefault('name') Out[7]: 'tcqws'
语法: dict.get(key, default=None) 参数: key – 字典中要查找的键。 default – 如果指定键的值不存在时,返回该默认值值。...from a 清空整个字典 a.copy() a (shallow) copy of a 得到字典副本 k in a True if a has a key k, else False 字典中存在键k...则为返回True,没有则返回False k not in a Equivalent to not k in a 字典中不存在键k则为返回true,反之返回False a.has_key(k) Equivalent...from b 从b字典中更新a字典,如果键相同则更新,a中不存在则追加 a.fromkeys(seq[, value]) Creates a new dictionary with keys from...setting it) 得到a[k],若不存在返回x,并设定为x a.pop(k[, x]) a[k] if k in a, else x (and remove k) 弹出a[k],若不存在则返回
,**kwargs)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值4get(self,k,d=None) 返回指定键的值,如果值不在字典中返回default值5items(...否则,返回default值8popitem(self) 随机返回并删除字典中的一对键和值9setdefault(self,k,d=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为...,查找对应的value,如果给定的可以在字典中无,则返回None info ={'name':'jamnes','age':'32','work':'basketplayer'} a =info.get...('age') print(a) 结果: 32 6-2 setdefault():通过给定的key,查找对应的value,如果给定的可以在字典中无,则返回None, 同时在字典中增加'test': None...,"k4":"v4",输出添加后的字典 e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典 f.请在k3对应的值中追加一个元素44,输出修改后的字典 g.请在k3对应的值的第
键空间的维护 当使用Redis命令对数据库进行读写时,服务器不仅会对键空间执行指定的读写操作,还会执行一些额外的维护操作: 在读取一个键之后(读操作和写操作都要对键进行读取),服务器会根据键是否存在来更新服务器的键空间命中...; 定期删除:采样一定个数的key 判断过期比例,并删除过期键,当过期比例不达标则重新采样删除,直到达标。...从库会通过惰性删除来判断键值对的是否过期,如果过期则读不到这个键,真正的删除是当主节点触发键过期时,主节点会同步一个del命令给所有的从节点。...比如向客户端发来一个blpop key命令,redis先找到对应的key的list,如果list不为空则pop一个数据返回给客户端;如果对应的list不存在或者里面没有数据,就将该key添加到redisDb...如果客户端发来一个repush key value命令,先从redisDb的blocking_keys中查找是否存在对应的key,如果存在就往redisDb的ready_keys这个链表中添加该key;
var变量也接收,则其为可变的数组,可以通过append方法来追加元素,示例如下: //向数组中追加元素 array1.append(3) 在创建数组时,也可以对数组进行初始化,示例如下: //创建数组...union()方法用于返回两个集合的并集。 subtract()方法用于返回第二个集合的补集。..." //updateValue 方法将更新一个键值 如果此键存在 则更新键值 并且将旧的键值返回 如果此键不存在 则添加键值 返回nil 其返回的为一个Optional类型值 可以使用if let进行处理...for (key,value) in dic2 { print(key,value) } //遍历所有键 for key in dic2.keys { print(key) } //遍历所有值...key) } 专注技术,热爱生活,交流技术,也做朋友。
" update: 如果key值存在,更新value值 如果key值不存在,添加key-value值 """ # d.update({'a':4,'f':1}) # print d "..."" setdefault 如果key值已经存在,不做修改 如果key值不存在,添加key-value值 """ d.setdefault('a',10) print d 3)字典的删除...d del d['a'] print d 4)字典的修改和查看 service = { 'http':80, 'mysql':3306 } # 查看字典里面所有的key值 print...service.keys() # 查看字典里面所有的value值 print service.values() # 查看字典里面所有的key-value值 print service.items(...not exist' """ get方法获取指定key对应的value值 如果key值存在,返回对应的value值 如果key值不存在,默认返回None,如果需要指定返回值,传值即可
在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的键值对,则该键值对被添加进去。...dictname.get(key[,default]),未检索到key时,返回默认值default U-字典添加或更新键值对 dictname[key] = value:如果存在此键,则更新键值,不存在则添加新键值对...,value可以是Python任意数据类型update(key: value) :存在则更新键值,不存在则添加此键值对setdefault(key, value):键存在时、不更新键值,键不存在时添加此键值对...dictname.get(key[,default]),未检索到key时,返回默认值default U-字典添加或更新键值对 dictname[key] = value:如果存在此键,则更新键值,不存在则添加新键值对...,value可以是Python任意数据类型 update(key: value) :存在则更新键值,不存在则添加此键值对 setdefault(key, value):键存在时、不更新键值,键不存在时添加此键值对
,val 为字典所有键对应的初始值 dict.get(key,default=None)返回指定键的值,如果值不在字典中返回default值 dict.has_key(key)如果键在字典dict里返回.../值对更新到dict里 dict.values()以列表返回字典中的所有值 pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。...key值必须给出。否则,返回default值。 popitem()返回并删除字典中的最后一对键和值。...如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 +打开一个文件进行更新(可读可写)。...互不冲突的打开模式可以可以进行叠加,比如ab表示以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。
如果 E 存在并且具有 .keys() 方法,则执行以下操作:for k in E: D[k] = E[k] 如果 E 存在并且缺少 .keys() 方法,则执行以下操作:for k, v in E:...如果找不到键,则如果给定默认值,则返回默认值;否则,引发 KeyError。 method popitem() 移除并返回一个 (key, value) 对作为 2-元组。...method setdefault(key, default=None) 插入具有默认值的键,如果键不在字典中。 如果键在字典中,则返回键的值,否则返回默认值。...如果 E 存在且具有 .keys() 方法,则执行以下操作:for k in E: D[k] = E[k] 如果 E 存在且缺少 .keys() 方法,则执行以下操作:for k, v in E: D[...如果追加器方法调用时带有一个位置参数:要追加的值。如果尚未装饰,则该方法将自动装饰为‘adds(1)’: @collection.appender def add(self, append): ...
# 如果不存在抛出异常 # li = [1,2,3,4] # res = li.index(6) # print(res) # ValueError: 6 is not in list 列表反转...,如: tu = (1,2,3,) 字典 字典用{}包括,由key和value组成的键值对,字典是个无序集合 列表、字典不能作为key值,key值只能是唯一的,字典中依然可以嵌套其他的数据类型,如: dic...key取值,字典内的列表依然通过索引取值 print(dic['k5']['k1']) # v11 print(dic['k4'][0]) # 1 print(dic['kkkk']) # 不存在的key...key会修改对应key的值,没有的key添加相应的值 dic['k4'] = 'v4' print(dic) # 已经存在的key返回对应的value,没有则添加key和value v1 = dic.setdefault...(dic) # 更新一个不存在的key就相当于添加了 dic.update(k6='k666') print(dic) 删除 # 删除并获取值pop(参数1,参数2) res = dic.pop('k1
a = ['林斌',123,'linbin'] a[1] = 'LinBin' // 如果超过列表的长度会报错 print(a) 循环 a = ['林斌',123,'linbin'] for...字典的每个键值(key=>value)对用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中,例如{'name': 'linbin','passwod': 'axbc1kof','times.../ 如果key不存在,则添加,如果存在,则更新 print(a) 删除 a = { 'name': 'linbin', 'password': 'axbc1kof', 'times...DB文件 """ linbin|axbc1kof|3 LinBin|axbc1kof|2 liuwenqian|axbc1kof|2 LinWenQian|axbc1kof|0 """ # 打开文件并读取内容...user_info_str += item_str else: user_info_str = user_info_str + '\n' + item_str # 打开文件并写入内容
python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字,字符串,元组。 ...1:True, } # setdefault 在字典中添加键值对,如果只有键那对应的值是none, #但是如果原字典中存在设置的键值对则他不会更改或者覆盖 dic.setdefault('...删除键值对,并返回对应的值,如果没有key则返回默认返回值 print(dic.pop('name')) print(dic) 结果为 ?... {'name':'张三', 'age':17, 'name_list':['zhangsan','李四'], 1:True, } #删除键值,如果不存在会报错...请在k3对应的值中追加一个元素 44,输出修改后的字典 dic['k3'].append(44) print(dic) # g.
列表(有序) 添加 list.append(元素):在列表末尾添加新的元素 list.extend(seq):在列表末尾一次性追加另一个序列中的多个值 –seq可以是列表、元组、字典,若为字典,则仅会将键...dict2) 删除字典: 删除单个元素:del dict[key值] 删除整个字典:del dict .pop()方法:删除键值对并返回键值 .popitem()方法:删除字典dict1的最后一个键值对并返回...集合(无序) 添加元素: .add(x):将元素 x 添加到集合中,如果元素已存在,则不进行任何操作。....update(x):可以添加元素,且参数可以是列表,元组,字典等 删除元素: .remove(x):将元素 x 从集合中移除,如果元素不存在,则会发生错误。....discard(x ):移除集合中的元素,且如果元素不存在,不会发生错误。 .pop():随机删除集合中的一个元素 del删除整个集合
() 以列表返回字典中的所有值 list(human_dic.values()) 06 增加/修改 dict[key] = value key存在则更新value,否则增加键值对...human_dic[“gender”] = “male” 07 删除 dict.pop(key) pop函数返回key对应的value值,并删除键值对 human_dic.pop...(dic2) 合并字典dic2中的数据,已存在的key跟新value的值 human_dic.update({“weight”: 64, “age”: 27}) 10 复制 dict.copy...() 如果 string 所有区分大小写的字符都是小写,则返回True 07 str.isspace() 如果 string 中只包含空格,则返回 True,否则返回 False 对字符串进行修改...为 False,不包含换行符,如果为 True,则保留换行符。
领取专属 10元无门槛券
手把手带您无忧上云