字典

1、字典为多个键值对的组合,表现为{key:value}

2、字典内,key必须为不可变类型数据,多用字符串,且一个字典内的key不可重复

3、字典内的键值对是无序的,这说明我们无法通过下标获取里面的元素。如需要获取里面的值,可以通过key取得。下方列举了两种通过key获取字典内value的方法

my_dict = {'name':'zs', 'age':18}
print(my_dict['name'])  # 方法1
print(my_dict.get('name'))  # 方法2

4、在上面两种通过key获取value的方法中,如果输入的key不存在,那么方法1在执行时会报错,而方法2会返回None

5、创建一个空字典时,可以用 变量名 = {} 的方法

6、字典的增删改查
:字典名[key] = value

my_dict = {}
my_dict['name'] = 'zs'
print(my_dict)

我们也可以用.setdefault(key,value)的方法对新增的key设置默认值,value可以为空,此时该key的值默认为None

my_dict = {'name':'zs', 'age':18}
my_dict.setdefault('sex')
print(my_dict)  -> 返回{'name': 'zs', 'age': 18, 'sex': None}

如用.setdefault()的方式对已有key设置默认值,那么原有key的值并不会改变(即使原值为None也如此)

my_dict = {'name':'zs', 'age':18}
my_dict.setdefault('age', '20')
print(my_dict)  -> 返回{'name': 'zs', 'age': 18}

:字典名[已存在的key] = value

my_dict = {}
my_dict['name'] = 'zs'  # 新增键值对
my_dict['name'] = 'ls'  # 修改已有键值对的值
print(my_dict)


删除字典内的键值对:可以通过指定删除的key,将该键值对从字典内删除

my_dict = {'name':'zs', 'age':18}
del my_dict['age']
print(my_dict)  -> 返回{'name': 'zs'}

也可以用.pop(key)的方式删除指定的键值对,并返回删除掉的(并不返回key)

my_dict = {'name':'zs', 'age':18}
a = my_dict.pop('age')
print(a)  -> 返回18

用.popitem()会随机删除字典中的键值对,同时返回由被删除的key和value组成的元组

my_dict = {'name':'zs', 'age':18}
a = my_dict.popitem()
print(a)  -> 返回('age', 18)

清空字典内的键值对用.clear()

my_dict = {'name':'zs', 'age':18}
my_dict.clear()
print(my_dict)  -> 返回{}

删除字典用 del 字典名

my_dict = {'name':'zs', 'age':18}
del my_dict
print(my_dict)  -> 执行时报错

7、计算字典中的键值对数量,可以用len()函数

8、判断一个值是否在字典内,可以用 value in/not in 字典名.values()的方式

my_dict = {'name':'zs', 'age':18}
a = 'ls' in my_dict.values()
print(a)  -> 返回False

9、判断一个key是否在字典内,可以用 key in/not in 字典名.keys(),其中.keys()可以不加

my_dict = {'name':'zs', 'age':18}
a = 'age' in my_dict
print(a)  -> 返回True

10、遍历字典时,用for…in的方式

# 但如果只用for…in,返回的为字典中的key,并不返回value
my_dict = {'name':'zs', 'age':18}
for i in my_dict:
    print(i)  -> 返回name
                     age

如想同时拿到键值对,可以用如下方式

my_dict = {'name':'zs', 'age':18}
for key, value in my_dict.items():
    print(key, value)  -> 返回name zs
                              age 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值