python3 dict文字笔记

1.字典 — dict
    1.什么是字典
        1.字典是一个可变容器,可以存储任意类型的数据
        2.字典中的每个元素都是通过“键”进行索引的
        3.字典中的元素是无序的
        4.字典是通过键(key)值(value)对形式存储的
        5.字典的键是不能重复的,而且只能用不可变类型数据作为键

    2.创建字典的方式
        1.使用字面值
            1.d = {}
            2.d = {"name":"zf","age":85}
            3.d = {"姓名":"张三丰","年龄":85}
            4.d = {1:[1,2,3],'abc':[4,5,6]}
            5.d = {
                'person1':{
                    'name':'zhangsandeng',
                    'age':'85'
                },
                'person2':{
                    'name':'zhangwuji',
                    'age':18
                }
            }

        2.使用构造函数 -dict
            1.d = dict()
                生成一个空字典,等同于{}
            2.d = dict(iterable)
                iterable:可迭代对象
                d = dict([('name','zhangsandeng'),['age',15]])
            3.d = dict(**kwargs)
                **kwargs:表示用关键字传参来表示一个字典
                示例:
                    d = dict(name = 'zhangsandeng',age=18)
                    等同于
                    d = {
                        'name':'zhangsandeng',
                        'age':18
                    }

        3.字典的键必须是不可变类型
            bool int float complex str tuple frozenset bytes
        4.字典的值可以是任意数据类型
        5.可变的数据类型
            list dict set(集合) bytearray(字节数组)

    3.字典的基本操作:
        字典的键索引:
            用[]运算符获取字典内key对应的值
            也可以使用[]来修改key对应的值
        示例:
        d = {
            'name':'tarena',
            'age':15
        }
        d['data'] = '2019-02-17' #向字典增加数据
        d['name'] #获取vaule
        d['name'] = 'tarena' #修改name键的值为tarena
        del d['name'] #删除name键对应的值

    4.字典的成员运算符 -in和 not in
        in:判断key是否在字典中
        not in:与in相反

    5.字典的迭代访问
        d = {
            'name':'tarena',
            'age' : 15,
            'data':'2019-02-17'
        }
        1.迭代d中的所有键
            for key in d.keys():
        2.迭代d中的所有值
            for value in d.values():
        3.迭代d中所有的键值
            for k,y in d.items():
        4.迭代d中所有的键
            使用迭代变量去字典中直接遍历,默认遍历就是键
            for key in d:
            #效果和第一点一样

    6.可以用于字典的内建函数
        len(d):返回字典中键值对的个数
        max(d):返回字典中键的最大值
        min(d):返回字典中键的最小值
        sum(d):返回字典中所有键的和
        any(d):只有字典中任意一个键为True,则返回True
        all(d):字典中所有键都为True,才返回True

    7.字典推导式:
        1.什么是字典推导式
            字典推导式是用可迭代对象创建字典的表达式。
        2.语法:
            {键表达式:值表达式 for 变量 in 可迭代对象 if 条件}
            说明:if条件是可以省略的,如果不省略的话,且条件为假则不生成表达式

            示例:
                示例:键为数字(10以内),值为键的平方
                
                d = {x:x**2 for x in range(10) }
                d = {x:x**2 for x in range(10)  if x %2 == 0 }

    8.字典 VS 列表
        1.字典和列表都是可变对象 —— 相同点
        2.索引方式不同,列表用数字做索引,字典使用键做索引  —— 不同点
        3.字典的插入,删除,修改操作的速度要快于列表,列表倾向于存储数据,字典倾向于经常读取更新 —— 不同点
        4.列表的存储是有序的,字典的存储是无序的 —— 不同点

 

    练习:从终端上输入多个学生姓名,年龄,成绩,将每个学员的信息存入字典中,然后再放入列表中。每个学员的信息都是手动输入,输入姓名为空时结束
    存储格式:[
                    {'name':'zhangsand','age':18,'score':10}
                ]
    输出格式如下:
    +----------+--------+-----------+
    |   name   |   age  |   score   |
    +----------+--------+-----------+
    |   zhang  |   85   |    100    |
    |   wang   |   88   |    000    |
    +----------+--------+-----------+

l = []
d = {}

while 1:
    name = input("please input name:\n>>>")
    if not name:
        break    
    age = input("please input age:\n>>>")
    scroe = input("please input scroe:\n>>>")
    d['name'] = name
    d['age'] = age
    d['scroe'] = scroe
    l.append(d)

head = """
+--------------+---------+---------+
|     name     |   age   |  scroe  |
+--------------+---------+---------+
"""
print(head)

for di in l:
    n = di['name'].center(14)
    a = str(di['age'].center(9))
    c = str(di['scroe'].center(9))
    mas = "|%s|%s|%s|"%(n,a,c)
    print(mas)

over = """
+--------------+---------+---------+
"""
print(over)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值