day06-字典

字典

定义一个变量保存一个学生的信息:姓名、性别、年龄、身高、体重、成绩

stu = {
    'name': "小明",
    'sex': "男",
    'age': 30,
    'height': 177,
    'weight': 80,
    'score': 78
}
print(stu['name'])

1.什么时候使用字典

同时保存多个意义不同的数据就使用字典

2.什么是字典(dict)

字典是容器型数据类型,将{}作为容器的标志,里面多个元素用逗号隔开(元素必须是键值对):

{key1: value1,
 key2: value2,
 key3: value3,
 ...}

字典是可变的(支持增删改); 字典是无序的(不支持下标操作)
元素:必须是键值对;
键 - 必须是不可变的数据(数字、字符串、元组),键是用来对值进行描述和区分的,键必须具有唯一的
值 - 没有要求

dict1 = {}
print(type(dict1))  # <class 'dict'>

键是不可变的

dict2 = {
    'name': '小明',
    10: 100,
    (1, 2): 200
}

list类型不能作为字典的key

1) 键是唯一

2) 字典无序

print({'a': 10, 'b': 20} == {'a': 10, 'b': 20})     # True
print([1, 2, 3] ==[3, 1, 2])    # False

3.字典的增删改查

1) 查 - 获取值

1.1)单个查
a.字典[key] -   获取指定key对应的值
b.
字典.get(key)   -   获取指定key对应的值(如果key不会存在不会报错,返回None)
字典.get(key,value)   -   获取指定key对应的值(如果key不存在不会报错,返回指定的默认值)
stu1 = {
    'name': "小明",
    'sex': "男",
    'age': 30,
    'height': 177,
    'weight': 80,
    'score': 78
}
print(stu1['name'], stu1['sex'])     # 小明 男
print(stu1.get('name'))     # 小明
print(stu1.get('breed'))    # None
print(stu1['breed'])        # KeyError: 'breed'
1.2) 遍历
for 变量 in 字典:
    pass
变量依次取到的是字典的key

键值对离开了字典无效

2) 增、改

字典[key] = value - 如果key存在,就修改value;当key不存在,就添加键值对

3) 删

del 字典[key] - 删除指定key对应的键值对
字典.pop(key) - 取出指定key对应的值,并且返回

4.相关方法

1) 字典.clear() - 清空字典

2) 字典.copy() - 复制字典产生一个一模一样的新字典并返回,产生一个新的地址

3) 字典.fromkeys()

dict.fromkeys(序列) -   创建一个新的字典,键是序列中的每一个元素,值都是None
dict.fromkeys(序列, 值)  -   创建一个新的字典,键是序列中的每一个元素,值是指定的值

4) keys, values, items

字典.keys()   -   获取字典所有的key(返回值是序列但不是列表)
字典.values() -   获取字典所有的值(返回值是序列但不是列表)
字典.items()  -   同时获取每个键值对的key和value(返回值是序列,序列中的元素是元组)

d1 = {'a': 10, 'b': 20, 'c': 30}
print(d1.keys())    # dict_keys(['a', 'b', 'c'])
print(d1.values())  # dict_values([10, 20, 30])
print(d1.items())   # dict_items([('a', 10), ('b', 20), ('c', 30)])

5) 字典.setdefault(key, value)

dict.setdefault() - 在字典中添加键值对(只添加不修改已经存在的键值对)
d1.setdefault(‘d’, 100)
print(d1)

6) 字典1.update(字典2) - 将字典2中所有键值对都添加到字典1中

注意:字典2不一定是字典,也可以是能转换成字典的序列

d1 = {'a': 10, 'b': 20, 'c': 30}
d1.update({'name': '小明', 'a': 100})
d1.update(('nm', [10,20]))
print(d1)   # {'a': 100, 'b': 20, 'c': 30, 'name': '小明', 'n': 'm', 10: 20}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值