08 Python字典的创建及增删改查

字典的创建

#字典的创建
#最简单,常用的
dic = {"name":"张三","age":18,"sex":"男"}
print(dic)#{'name': '张三', 'age': 18, 'sex': '男'}

#其它创建方法
# #方式1
dic1 = dict((('one',1),('two',2)))
print(dic1) #{'one': 1, 'two': 2}

#方式2
dic2 = dict(one = 1,two = 2,three=3)
print(dic2)#{'one': 1, 'two': 2, 'three': 3}

# 方式3
dic3 = dict({'one':1,'two':2,'three':3})
print(dic3)#{'one': 1, 'two': 2, 'three': 3}


#方式4
#定义一个元组
tul = ("《西游记》","《三国演义》","《水浒传》","《红楼梦》")
#定义一个列表
lis = ["吴承恩","罗贯中","施耐庵","曹雪芹"]
dic4 = dict(zip(tul,lis))
print(dic4)#{'《西游记》': '吴承恩', '《三国演义》': '罗贯中', '《水浒传》': '施耐庵', '《红楼梦》': '曹雪芹'}

#方式5
dic5 = {k:v for k,v in[('name',"zh"),("age",15),("sex","女")]}
print(dic5) #{'name': 'zh', 'age': 15, 'sex': '女'}

#方式6
dic6 = dict.fromkeys('abc','等级')
print(dic6)#{'a': '等级', 'b': '等级', 'c': '等级'}

增:

  • 通过键值对增加
#通过键值对直接增加
dic = {"姓名":"张三","年龄":"25"}
dic['性别'] = '女' #没有性别这个键,就增加键值对
print(dic)#{'姓名': '张三', '年龄': '25', '性别': '女'}
dic['姓名'] = '西施' #有姓名这个键,就变成修改了
print(dic)#{'姓名': '西施', '年龄': '25', '性别': '女'}
  • 通过setdefault()方法增加
dic = {"姓名":"张三","年龄":"25"}
dic.setdefault('性别','男') #没用此键,添加
print(dic)#{'姓名': '张三', '年龄': '25', '性别': '男'}

dic.setdefault('姓名','西施') #有姓名这个键,不添加,不修改
print(dic)#{'姓名': '张三', '年龄': '25', '性别': '男'}

#有返回值,通过键,返回值
ret = dic.setdefault("姓名")
print(ret)#张三

删:

  • pop()方法删除
# #pop 通过key删除字典的键值对,有返回值,可以设置
dic = {"姓名":"张三","年龄":"25"}
ret = dic.pop("姓名")
print(dic,ret) #{'年龄': '25'} 张三
  • popitem()方法删除
# popitem,如今是删除最后一个,有返回值,之前版本随机删除
dic = {'《西游记》': '吴承恩', '《三国演义》': '罗贯中', '《水浒传》': '施耐庵', '《红楼梦》': '曹雪芹'}
ret = dic.popitem()
print(dic,ret) #{'《西游记》': '吴承恩', '《三国演义》': '罗贯中', '《水浒传》': '施耐庵'} ('《红楼梦》', '曹雪芹')
  • clear():清空字典
#clear()清空字典
dic = {"zh":18}
dic.clear()
print(dic)#{}
  • del 删除字典,可内存中删除
dic = {"name":"zhangsan","age":18}
del dic["name"]
print(dic)#{'age': 18}
del  dic    #已经从内存里面删除
print(dic)#NameError: name 'dic' is not defined

改:

  • 通过键来改值
#改,通过键值对直接改
dic = {"姓名":"张三","年龄":"25"}
dic['姓名'] = '李四'
print(dic) #{'姓名': '李四', '年龄': '25'}
  • update()方法
#update 有点相当于在后面追加
dic = {'姓名': '李四', '年龄': '25'}
dic.update(性别='男')
print(dic) #{'姓名': '李四', '年龄': '25', '性别': '男'}

dic.update([('A','a'),('B','b')])
print(dic) #{'姓名': '李四', '年龄': '25', '性别': '男', 'A': 'a', 'B': 'b'}

dic1 = {'姓名':'王五','年龄':25}
dic2 = {'爱好':"看书"}
dic1.update(dic2) #两个字典合并了
print(dic1)#{'姓名': '王五', '年龄': 25, '爱好': '看书'}
print(dic2)#{'爱好': '看书'}

查:

  • 通过键来进行查询
#通过键查询,如果没有这个键,就会报错
dic = {'爱好': '看书'}
print(dic['爱好'])# 看书
  • get()方法
#get(),如果没有这个键,显示None,也可以设置提示信息
dic = {'姓名':'王五','年龄':25}
print(dic.get('姓名')) #王五
print(dic.get("你是")) #None
print(dic.get("你是",'没有此键')) #没有此键
  • key()、value() 、items()方法
#keys()
dic = {'姓名':'王五','年龄':25}
print(dic.keys()) #dict_keys(['姓名', '年龄'])

# values()
print(dic.values()) #dict_values(['王五', 25])

#items()
print(dic.items()) #dict_items([('姓名', '王五'), ('年龄', 25)])

 

字典练习题目

#1.请在字典中添加一个键值对,’k4‘:’v4‘,输出添加后的字典
dic = {'k1':'v1','k2':'v2','k3':[11,22,33]}
dic['k4'] = 'v4' #直接添加
#dic.setdefault('k4','v4') #通过setdefault()方法添加
#dic.update(k4 = 'v4') #通过修改增加
print(dic)#{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
 
#2.请在修改字典中“k1”对应的值为“kow”,输出修改后的字典
dic = {'k1':'v1','k2':'v2','k3':[11,22,33]}
# dic['k1'] = 'kow'#直接修改
dic.update(k1 = 'kow')
print(dic)#{'k1': 'kow', 'k2': 'v2', 'k3': [11, 22, 33]}
 
#3.请在k3对应的值中追加一个元素44,输出修改后的字典
#先得到k3对应的值
dic = {'k1':'v1','k2':'v2','k3':[11,22,33]}
#先通过’k3‘知道对应的值,因为是列表,使用可以用append()方法增加
dic['k3'].append(44)
print(dic)#{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33, 44]}
 
#4.请在k3对应的值的第一个位置插入个元素,输出修改后的字典
dic = {'k1':'v1','k2':'v2','k3':[11,22,33]}
#与第三道题类似
dic['k3'].insert(0,44) #用insert()方法指定插入元素
print(dic)#{'k1': 'v1', 'k2': 'v2', 'k3': [44, 11, 22, 33]}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值