Python基本数据类型(字典)

1. 定义与特性

1.1 定义

字典是Python语言中唯一的映射类型。

定义:{key1:value1,key2:value2}

  1. 键与值用冒号:分开;
  2. 项与项用逗号,分开;

1.2 特性

  1. key-value结构
  2. key必须可hash、且必须为不可变数据类型、必须唯一
  3. 可存放任意多个值、可修改、可不唯一
  4. 无序(区分有序字典)

2. 字典的创建

# 方式一:
person01 = {"name":"Tom",'age':20}
# 方式二:
person02 = dict(name='Vincent',age=18)
# 方式三:
person03 = dict({"name":"Jack",'age':16})
# 方式四:
person04 = dict((['name','小明'],['年龄',14]))

print(person01) # {'age': 20, 'name': 'Tom'}
print(person02) # {'age': 18, 'name': 'Vincent'}
print(person03) # {'age': 16, 'name': 'Jack'}
print(person04) # {'年龄': 14, 'name': '小明'}

# 方式五:
    # 通过字典的fromkeys方法初始化一个字典,详细见下面内容

3. 字典的常用方法

常用方法列表

操作/方法作用语法
fromkeys创建一个新字典,以序列seq中的元素做字典的建,value为字典所有键对应的初始值dict.fromkeys(seq,value)
keys()返回一个包含字典所有key的列表dic.keys()
values()返回一个包含字典所有value的列表dic.values()
items()返回一个包含所有(key,value)元组的列表dic.items()
dic[new_key] = new_value新增key:valuedic[new_key] = new_value
setdefault新增kv,如果字典中不存在key键,由dic[key] = default为它赋值,默认为Nonedic.setdefault(k, d=None)
pop如果字典中存在key,删除并返回key对应的value;如果key不存在,且没有给出default值,则引发keyerror异常dic.pop(key[,default])
clear删除字典中所有的项和元素dic.clear()
update将字典dic2的键值添加到字典dic1中dic1.update(dic2)
dic[key]获取字典中某key的value值,若key不存在字典中,则报KeyError错dic[key]
get返回字典中key对应的值,若key不在字典中,则返回定义的default值;default默认为 Nonedic.get(key,default=None)

常用操作/方法介绍

# 字典的常用操作与方法

# 1.fromkeys
# 作用:用于创建一个新字典,以序列seq中的元素做字典的建,value为字典所有键对应的初始值
# 返回值:一个新字典
# 语法:dict.fromkeys(seq,value)
# 参数说明:
    # seq:一个序列,字典的键
    # value:可选参数,设置键对应的值;若不写,则值为None
seq = ('num1','num2','num3','num4')
ret11 = {}.fromkeys(seq,100)
ret12 = {}.fromkeys(seq,)
print('ret11:',ret11)
print('ret12:',ret12)


# 2.获取/查看键、值、键值对
    # 2.1 dic.keys() 返回一个包含字典所有key的列表
    # 2.2 dic.values() 返回一个包含字典所有value的列表
    # 2.3 dic.items() 返回一个包含所有(key,value)元组的列表
dic = {'name':'Tom','age':12,'gender':'male','Country':'CN'}
ret21 = dic.keys()
ret22 = dic.values()
ret23 = dic.items()
print('ret21:',ret21)
print('ret22:',ret22)
print('ret23:',ret23)



# 3.新增
# 3.1 dic[new_key] = new_value
dic = {'name':'Jack','age':14}
dic['gender'] = '男'
print('ret31:',dic)

#3.2 setdefault
# 如果字典中不存在key键,由dic[key] = default为它赋值,默认为None
# dic.setdefault(k, d=None)
dic = {'name':'Vincent','age':15}
dic.setdefault('name','小明')
dic.setdefault('gender')
dic.setdefault('class','三年八班')
print('ret32:',dic)


# 4.删除
# 4.1 pop
# 和get方法相似,如果字典中存在key,删除并返回key对应的value;如果key不存在,且没有给出default值,则引发keyerror异常
# dic.pop(key[,default])
dic = {'name':'Lily','age':18}
ret41 = dic.pop('name')
print('ret41:',ret41)

# 4.2 clear
# 删除字典中所有的项和元素
# dic.clear()
dic = {'name':'Lily','age':18}
dic.clear()
print('ret42:',dic)


# 5.修改
# 5.1 dic[key] = new_value
# 如果key存在,则其值替换为new_value
dic = {'name':'Lily','age':18}
dic['age'] = 28
print('ret51:',dic)

# 5.2 update
# 将字典dic2的键值添加到字典dic1中,若dic2中某key在dic1中已存在,则更新dic1中key对应的value值
# dic1.update(dic2)
dic1 = {'name':'Tom','age':15}
dic2 = {'age':17,'gender':'男'}
dic1.update(dic2)
print('ret52',dic1)


# 6.查看
# 6.1 dic[key]
# 返回字典中key对应的值,若key不存在字典中,则报KeyError错
dic = {'name':'Tom','age':18}
ret61 = dic['name']
print('ret61',ret61)

# 6.2 get
# dic.get(key,default=None)
# 返回字典中key对应的值,若key不在字典中,则返回定义的default值;default默认为 None
dic = {'name':'Tony','age':18}
ret62 = dic.get('name')
ret63 = dic.get('aaa')
ret64 = dic.get('bbb',"forTest")
print('ret62:',ret62)
print('ret63:',ret63)
print('ret64:',ret64)

打印输出结果

'''
ret11: {'num3': 100, 'num1': 100, 'num4': 100, 'num2': 100}
ret12: {'num3': None, 'num1': None, 'num4': None, 'num2': None}
ret21: dict_keys(['age', 'Country', 'name', 'gender'])
ret22: dict_values([12, 'CN', 'Tom', 'male'])
ret23: dict_items([('age', 12), ('Country', 'CN'), ('name', 'Tom'), ('gender', 'male')])
ret31: {'age': 14, 'name': 'Jack', 'gender': '男'}
ret32: {'age': 15, 'class': '三年八班', 'name': 'Vincent', 'gender': None}
ret41: Lily
ret42: {}
ret51: {'age': 28, 'name': 'Lily'}
ret52 {'age': 17, 'name': 'Tom', 'gender': '男'}
ret61 Tom
ret62: Tony
ret63: None
ret64: forTest
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值