Python字典(dict)
  NtjfZaz7GLAN 2023年11月02日 40 0

字典是一种可变的容器,可以存储任意类型的数据

字典中的每个数据都是用"键" (key) 进行索引,而不像序列可以用下标进行索引

字典中的数据没有先后关系,字典的存储是无序的

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。key必须是不可变类型,如:数字、字符串、元组。

字典的表示方式是以{} 括起来,以冒号(:)分割的键值对,各键值对之间用逗号分隔开

字典的键一般是唯一的,如果重复最后的一个键值对会替换前面的

1.创建空字典:

d = {}    # 空字典
d = dict() # 空字典

2.创建非空的字典:

dic1 = {'name': 'cgk', 'age': 20, 'sex': 'male'}
dic2 = dict((('name', 'cgk'),))
print (dic1,dic2)

键一般是唯一的,如果重复最后的一个键值对会替换前面的

值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。

3.字典增、删、改、查

a.增加

setdefault()

setfault函数用于设置键的默认值

若在字典中该键已经存在,则忽略设置;若不存在,则添加该键和值

a.setfault(键,值)

#增
dic1 = {'name': 'cgk'}
dic1['age'] = '20'
print(dic1)

#键存在,不改动,返回字典中相对应的键对应的值
a = dic1.setdefault('age', 30)
print(a)
print(dic1)

#键不存在,在字典中增加新的键值对,并返回相应的值
b = dic1.setdefault('hobby', 'girl')
print(b)
print(dic1)
a = {"姓名":'KR',"年龄":18
}
a["技能"] = 'python' # 字典增加操作
print(a) 
# {"姓名":'KR',"年龄":18,"技能":"python"}

b.删除

a = {"姓名":'KR',"年龄":18,"技能":"python"
}
del a["技能"]
print(a) 
# {"姓名":'KR',"年龄":18}

c.修改和update

a = {"姓名":'KR',"年龄":18,"技能":"python"
}
a['年龄'] = 88
print(a) # {"姓名":'KR',"年龄":88}
dic4 = {'name': 'cgk', 'age': '20', 'hobby': 'girl'}
dic5 = {1: "1", 'age': "30"}
dic4.update(dic5)       #把dic5加进dic4里面,如果有重复的键,则覆盖
print(dic4)
#{'name': 'cgk', 'age': '30', 'hobby': 'girl', 1: '1'}

d.查找

a = {"姓名":'KR',"年龄":18,"技能":"python"
}
print(a['姓名'])
# "KR"

4.字典的操作方法

get()

用于从字典中获取指定键的值。在get函数中可以设置默认值。当get函数没有获取到对应键时,get函数将会将默认值返回。

a = {"姓名":'KR',"年龄":18
}
r = a.get("姓名")
print(r) # KR
r1 = a.get("技能")
print(r1) # None
r2 = a.get("技能","python")
print(r2) # python

keys()

keys函数将以列表的形式返回字典中的所有键

a = {"姓名":'KR',"年龄":18,"技能":{"技能1":"python","技能2":"JAVA"}
}
print(a)
print(a.keys()) # dict_keys(["姓名","年龄","技能"])
				#只能获取到最外层字典对应键。嵌套的字典不会返回。

items()

items函数将以列表的形式返回字典中素有键值对

a = {"姓名":'KR',"年龄":18
}
r = a.items()
print(r) # dict_items([("姓名":'KR'),("年龄":18)])

values()

values函数将以列表的形式返回字典中所有的值

a = {"姓名":'KR',"年龄":18
}
r = a.values()
print(r) # dict_values('KR',18)

clear()清空字典

a = {"姓名":'KR',"年龄":18
}
a.clear()
print(a) # {}
print(len(a)) # 0

copy()  返回字典dic的副本,只复制一层(浅拷贝)

a = {"姓名":'KR',"年龄":18
}
b = a.copy()
print(b) # {"姓名":'KR',"年龄":18}
del b["姓名"]
print(b) # {"年龄":18}
print(a) # {"姓名":'KR',"年龄":18}

fromkeys()

fromkeys函数用于创建一个新的字典

参数1:是一个序列(列表、元组、集合),用于作为字典的键

参数2:可以是任何数据类型,作为每个键的值

a = {}
a.fromkeys(('姓名','年龄'))
print(a) # {}
b = a.fromkeys(('姓名','年龄'))
print(b) # {'姓名':None,'年龄':None}
c = a.fromkeys(('姓名','年龄'),666)
print(c) # {'姓名':666,'年龄':666}
d = a.fromkeys(('姓名','年龄'),(123,666))
print(d) # {'姓名':(123,666),'年龄':(123,666)}

pop()

pop函数用于从字典中移除指定键,并返回该键所对应的值

a = {"姓名":'KR',"年龄":18
}
#a.pop("姓名")
r = a.pop("姓名")
print(a) # {"年龄":18}
print(r) # KR

popitem()

popitem函数用于从字典中删除最后一项,并以元组形式返回该项所对应的键和值

a = {"姓名":'KR',"年龄":18
}
#a.popitem
r = a.popitem()
print(a) # {"姓名":'KR',}
print(r) # ("年龄":18) 返回值是被删除的数据,并且是元组形式
方法&函数	描述/dic代表字典对象
dic.clear()	清空字典
dic.pop(key)	移除键,同时返回此键所对应的值
dic…popitem()	随机删除一组键值对,同时返回对应的值
dic.copy()	返回字典dic的副本,只复制一层(浅拷贝)
dic.update(dic1)	将字典dic1合并到dic中,如果键相同,则此键的值取dic1的值作为新值
dic.get(key, default)	返回键key所对应的值,如果没有此键则返回default
dic.keys()	返回可迭代的dict_keys集合对象
dic.values()	返回可迭代的dict_values值对象
dic.items()	返回可迭代的dict_items对象
cmp(dict1, dict2)	比较两个字典元素
len(dict)	计算字典元素个数,即键的总数
str(dict)	输出字典可打印的字符串表示
type(variable)	返回输入的变量类型,如果变量是字典就返回字典类型
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  9JCEeX0Eg8g4   2023年11月25日   41   0   0 ednpython
  38gcbVXUBcLA   2023年11月19日   29   0   0 python缩进
  6tuRdFP5lxfF   2023年11月22日   34   0   0 python日志记录