Python中有多种方式创建字典,如下,直接使用" { } "默认创建一个空字典。更规范的做法如第4行所示,通过键值对创建字典,还可以通过dict关键字创建字典。
dic={}
print("字典的类型:",type(dic))
print("字典的内容:",dic)
dic={"key1":"hello","key2":"world"}
print("创建字典时设置初始值:",dic)
dic=dict((["key3","hello"],["key4","world"]))
print("使用dict关键字创建字典:",dic)
执行结果如下
字典的类型: <class 'dict'>
字典的内容: {}
创建字典时设置初始值: {'key1': 'hello', 'key2': 'world'}
使用dict关键字创建字典: {'key3': 'hello', 'key4': 'world'}
二、修改字典和删除字典
修改字典的内容,需要先找到对应元素。同列表一样,字典也可以通过下标进行访问,只是下标值是键。通过键找到对应的数据后,使用del关键字进行删除,如下
dic={"key1":"hello","key2":"world"}
print("获取key1的值:",dic["key1"])
dic["key1"]="hello python"
print("修改key1的内容:",dic)
dic["key2"]=list(range(0,5))
print("修改key2的内容:",dic)
dic["key3"]="spark"
print("添加一个新键key3:",dic)
del dic["key2"]
print("删除key2后的内容:",dic)
执行结果如下,输出列表
获取key1的值: hello
修改key1的内容: {'key1': 'hello python', 'key2': 'world'}
修改key2的内容: {'key1': 'hello python', 'key2': [0, 1, 2, 3, 4]}
添加一个新键key3: {'key1': 'hello python', 'key2': [0, 1, 2, 3, 4], 'key3': 'spark'}
删除key2后的内容: {'key1': 'hello python', 'key3': 'spark'}
三、字典推导式
列表可以推导,字典也可以推导。列表推导返回的结果是一个列表类型,字典推导返回的结果是一个字典类型。雷彪推导是在表达式两头使用中括号,字典推导是在表达式两头使用大括号,如下
dic={"key1":"hello","key2":"world"}
result={
k:dic.get(k).upper()
for k in dic.keys()
}
print("将字典值转为大写:",result)
result={
k:"hello"+dic.get(k).upper()
for k in dic.keys()
if k == "key2"
}
print("筛选出key2的值并拼接hello:",result)
执行结果如下,输出列表
将字典值转为大写: {'key1': 'HELLO', 'key2': 'WORLD'}
筛选出key2的值并拼接hello: {'key2': 'helloWORLD'}
四、内建方法
为方便 *** 作字典对象,pyth提供了多个内建函数。这些函数用于获取字典的值、获取键、、获取整个项、创建字典副本、修改字典元素等。本小节将详细演示如何使用这些内建函数。
1.get函数get函数用于从字典获取指定键的值。在get函数中可以设置默认值,当get函数没有获取到对应键时,get函数会将默认值返回,如下
dic={"key1":"hello","key2":"world"}
val=dic.get("key1")
print("键key1的值为:",val)
val=dic.get("key3")
print("键key3的值为:",val)
val=dic.get("key3","default")
print("键key3的值为:",val)
执行结果如下,可以看到,字典中没有键" key3 “,此时获取” key3 “的值将返回None。若是在get函数的参数中设置了默认值” default “,则将返回” default "。
键key1的值为: hello
键key3的值为: None
键key3的值为: default
2.keys函数
keys函数将以列表的形式返回字典中的所有键,如下
dic1={"key1":"hello","key2":"world"}
print("dic1的所有键:",dic1.keys())
dic2={"key1":"hello","key2":{"key3":"world"}}
print("dic2的所有键:",dic2.keys())
执行结果如下,可以看到keys函数只会返回当前字典的所有键,并不包含所嵌套的字典的键。
dic1的所有键: dict_keys(['key1', 'key2'])
dic2的所有键: dict_keys(['key1', 'key2'])
3.items函数
items函数将以列表的形式返回字典中的所有项,这些项是二元组结构,如下
dic={"key1":"hello","key2":"world"}
items=dic.items()
print("dic的所有项:",items)
print("字典项为:")
for item in items:
print(item)
执行结果如下,输出列表
dic的所有项: dict_items([('key1', 'hello'), ('key2', 'world')])
字典项为:
('key1', 'hello')
('key2', 'world')
4.values函数
values函数将以列表的形式返回字典中的所有值,如下
dic={"key1":"hello","key2":"world"}
values=dic.values()
print("dic的所有值:",values)
print("字典值为:")
for value in values:
print(value)
执行结果如下,输出字典项
dic的所有值: dict_values(['hello', 'world'])
字典值为:
hello
world
5.clear函数
clear函数用于将字典清空,如下
dic={"key1":"hello","key2":"world"}
dic.clear()
print("输出清空后的字典:",dic)
print("输出清空后的字典长度:",len(dic))
执行结果如下,输出空字典和字典的长度,也就是字典元素个数
输出清空后的字典: {}
输出清空后的字典长度: 0
6.copy函数
copy函数用于创建字典的副本,如下,其与列表的copy函数表现出的性质一样,修改原字典对象,不会影响其副本。
dic={"key1":"hello","key2":"world"}
new_dic=dic.copy()
del dic["key1"]
print("原字典:",dic)
print("副本:",new_dic)
执行结果如下,输出原字典和副本,可以看到,删除原字典的键,副本并没有发生变化
原字典: {'key2': 'world'}
副本: {'key1': 'hello', 'key2': 'world'}
7.fromkeys函数
fromkeys函数用于创建一个新的字典,第一个参数是一个序列,用于作为字典的键。第二个参数也是一个序列,作为每个键的值。如下,在第2行,fromkeys函数的调用没有传入第二个参数,那么每个键将使用" None "作为值。第6行的调用传入了 " default ",那么每个键将使用 "default "作为值。
tmp_tuple=("key1","key2")
dic=dict.fromkeys(tmp_tuple)
print("通过元组创建字典:",dic)
tmp_tuple=("key1","key2")
dic=dict.fromkeys(tmp_tuple,"default")
print("设置键的值:",dic)
执行结果如下,输出字典
通过元组创建字典: {'key1': None, 'key2': None}
设置键的值: {'key1': 'default', 'key2': 'default'}
8.pop函数
pop函数用于从字典中移除指定键,并返回该键所对应的值,如下
dic={"key1":"hello","key2":"world"}
val=dic.pop("key1")
print("键key1的值:",val)
print("删除键key1后的字典:",dic)
执行结果如下,输出删除键后的字典
键key1的值: hello
删除键key1后的字典: {'key2': 'world'}
9.popitem函数
popitem函数用于从字典中删除最后一项,并以元组形式返回该项所对应的键和值,如下
dic={"key1":"hello","key2":"world"}
val=dic.popitem()
print("返回的项:",val)
print("删除最后一项的字典:",dic)
执行结果如下,输出删除的项和删除后的字典
返回的项: ('key2', 'world')
删除最后一项的字典: {'key1': 'hello'}
10.setdefault函数
setdefault函数用于设置键的默认值,若在字典中该键已经存在,则忽略设置;若不存在,则添加该键和值,如下
dic={"key1":"hello","key2":"world"}
dic.setdefault("key1",None)
print("设置key1的默认值:",dic)
dic.setdefault("key3","bigdata")
print("设置key3的默认值:",dic)
执行结果如下,输出字典
设置key1的默认值: {'key1': 'hello', 'key2': 'world'}
设置key3的默认值: {'key1': 'hello', 'key2': 'world', 'key3': 'bigdata'}
11.update函数
update函数用于将字典2的值更新到字典1。若字典2的值在字典1已经存在,则对字典1进行修改;若不存在,则对字典1进行添加,如下
dic1={"key1":"hello"}
dic2={"key1":"hello world"}
dic1.update(dic2)
print("修改key1的值:",dic1)
dic2={"key2":"hello python"}
dic1.update(dic2)
print("将key2更新到dic1:",dic1)
执行结果如下,输出更新后的字典
修改key1的值: {'key1': 'hello world'}
将key2更新到dic1: {'key1': 'hello world', 'key2': 'hello python'}
这篇文章到这里就结束了,希望能给小伙伴们一些帮助,喜欢的小伙伴们也可以三连支持一下博主!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)