字典常用函数
-
cmp(dict1,dict2) (已删除,直接用>,<,==即可)
-
如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1。
-
先比较字典的长度,然后比较键,最后比较键对应的值
dict1 = {'Name': 'Zara', 'Age': 7}; dict2 = {'Name': 'Mahnaz', 'Age': 27}; dict3 = {'Name': 'Abid', 'Age': 27}; dict4 = {'Name': 'Zara', 'Age': 7}; print ("Return Value : %d" % cmp (dict1, dict2)) print ("Return Value : %d" % cmp (dict2, dict3)) print ("Return Value : %d" % cmp (dict1, dict4)) # result Return Value : -1 Return Value : 1 Return Value : 0
-
-
len(dict2)
- 计算键的个数
-
str(dict3)
-
在Python中,使用
str()
函数可以将字典转换为字符串表示形式。这对于需要将字典的内容以字符串的形式进行输出、保存或传递给其他函数等情况非常有用。当你调用
str()
函数并传入一个字典作为参数时,它会返回一个包含字典内容的字符串。这个字符串的格式与字典结构相似,通常以花括号{}
表示,每个键值对用冒号:
连接,并且键值对之间用逗号,
分隔。具体示例如下:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} my_str = str(my_dict) print(my_str)
输出结果:
{'name': 'John', 'age': 30, 'city': 'New York'}
这样,你就可以在需要将字典转换为字符串的场景中使用
str()
函数了。比如,你可以将字典保存到文件中,或者将其作为参数传递给需要接受字符串作为输入的函数等。
-
-
dict4.clear()
-
用于删除字典内所有元素
tinydict = {'Name': 'Zara', 'Age': 7};print ("Start Len : %d" % len(tinydict)) tinydict.clear() print ("End Len : %d" % len(tinydict))
-
-
dict5.copy()
-
返回一个字典的浅复制。
dict1 = {'user':'runoob','num':[1,2,3]}dict2 = dict1 # 浅拷贝: 引用对象 dict3 = dict1.copy() # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用# 修改 data 数据 dict1['user']='root' dict1['num'].remove(1)# 输出结果 print(dict1) print(dict2) print(dict3) # result {'num': [2, 3], 'user': 'root'} {'num': [2, 3], 'user': 'root'} {'num': [2, 3], 'user': 'runoob'} #实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。
-
-
dict6.fromkeys(seq[, value])
-
用于创建一个新字典(不对dict6进行修改),以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
-
seq – 字典键值列表。
-
value – 可选参数, 设置键序列(seq)的值,默认为 None。
seq = ('Google', 'Runoob', 'Taobao')# 不指定默认的键值,默认为 None thisdict = dict.fromkeys(seq) print ("新字典为 : %s" % str(thisdict))# 指定默认的键值 thisdict = dict.fromkeys(seq, 10) print ("新字典为 : %s" % str(thisdict)) # result 新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None} 新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}
-
-
dict7.get(key,[,value])
-
key – 字典中要查找的键。
-
value – 可选,如果指定键的值不存在时,返回该默认值。
-
返回指定键的值,如果键不在字典中返回默认值 None 或者设置的默认值。
tinydict = {'Name': 'Runoob', 'Age': 27}print ("Age : %s" % tinydict.get('Age'))# 没有设置 Sex,也没有设置默认的值,输出 None print ("Sex : %s" % tinydict.get('Sex')) # 没有设置 Salary,输出默认的值 0.0 print ('Salary: %s' % tinydict.get('Salary', 0.0)) # result Age : 27 Sex : None Salary: 0.0
-
get()方法和dict[key]的区别
get(key) 方法在 key(键)不在字典中时,可以返回默认值 None 或者设置的默认值。
dict[key] 在 key(键)不在字典中时,会触发 KeyError 异常。
-
对嵌套字典的使用
tinydict = {'RUNOOB' : {'url' : 'www.runoob.com'}}res = tinydict.get('RUNOOB', {}).get('url') # 输出结果 print("RUNOOB url 为 : %s" % str(res)) # result RUNOOB url 为 : www.runoob.com
-
-
dict8.has_key(key)
- 用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false
-
dict9.items()
-
以列表返回可遍历的(键, 值) 元组数组。
dict1 = {'a':1, 'b':2 } print(dict1.items()) # result dict_items([('a', 1), ('b', 2)])
-
-
dict10.keys()
-
以列表返回一个字典所有的键。
dict1 = {'a':1, 'b':2 } print("%s" % dict1.keys()) print("%s" % list(dict1.keys())) # result dict_keys(['a', 'b']) ['a', 'b']
-
-
dict11.setfault(key,default=None)
-
key – 查找的键值。
-
default – 键不存在时,设置的默认键值。
-
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
dict1 = {'a':1, 'b':2 } print(dict1.setdefault('s',"no")) print(dict1) # result no {'a': 1, 'b': 2, 's': 'no'}
-
-
dict12.update(tinydict)
-
将字典tinydict更新到dict12中:
如dict12中没有的,tinydit中有的,就直接将键值对添加到dict12中,如果tinydict中有的,dict12中也有,则将dict12中所对应的键的值改为tinydict中的值
dict1 = {'a':1, 'b':2 } dict2 = {'a':100, 'c':3 } dict1.update(dict2) print(dict1) #result {'a': 100, 'b': 2, 'c': 3}
-
-
dict13.values()
-
以列表返回字典中的所有值。
tinydict = {'Name': 'Runoob', 'Age': 7}print ("Value : %s" % tinydict.values()) print ("Value : %s" % list(tinydict.values()) ) # result Value : dict_values(['Runoob', 7]) Value : ['Runoob', 7]
-
-
dict14.pop(key,[,default])
-
删除字典给定键 key 所对应的值,返回值为被删除的值。
-
key - 要删除的键
-
default - 当键 key 不存在时返回的值
-
返回被删除的值:
- 如果
key
存在 - 删除字典中对应的元素 - 如果
key
不存在 - 返回设置指定的默认值 default - 如果
key
不存在且默认值 default 没有指定 - 触发KeyError
异常
site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}element = site.pop('name')print('删除的元素为:') print(element) print('字典为:') print(site) # result 删除的元素为: 菜鸟教程 字典为: {'url': 'www.runoob.com', 'alexa': 10000}
- 如果
-
-
dict15.popitem()
-
返回并删除字典中的最后一对键和值。
-
如果字典已经为空,却调用了此方法,就报出 KeyError 异常。
site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'} pop_obj=site.popitem() print(pop_obj) print(site) # result ('url', 'www.runoob.com') {'name': '菜鸟教程', 'alexa': 10000}
-