• Python字典操作及课后练习



    '''
    dict,唯一一个映射数据类型
    数据类型划分:可变数据类型,不可变数据类型
    不可变数据类型:元组,bool int str(对str的任何改变都是形成了新的str,对原来的str没有改变)
    可变数据类型:list,dict,set
    dict key 必须是不可变数据类型,可哈希,元祖bool,int,str
    value: 任意数据类型;
    dict 优点: 二分查找去查询
    存储大量的关系型数据
    特点:无序的
    字典的增:
    dict1={}
    dict1['high'] = 185 没有键值对,添加
    dict1['high']=160 如果有键值对,则值覆盖
    dict1.setdefault('weight',150) 有键值对,不做任何改变;没有才添加
    删除:
    print(dic1.pop('age')) 有返回值,按键去删除
    print(dic1.pop('age',None)) 没有这个键的话,则返回None
    print(dic1)
    dic1.popitem() 将最后一个删除
    print(dict1)
    del删除字典;clear()清空字典表
    改:
    dic2.update(dic1) 将dic1的键值对添加到dic2中
    查:
    dict1.keys()字典的键 dict1.values()字典的值 .items()里面是元组,元祖里面是键值
    当什么都不写时,打印输出的是键
    面试题:
    a=1 b=2 用一行代码转换a,b的值
    a,b = b,a
    print(a,b)
    字典赋值:
    for k,v in dic1.items(aa668668@):
    print(k,v)
    同样得到键值对,首选get方法!!!
    v1 = dic1['name'] 键值不存在可能会报错
    v2 = dic1.get('name1','没有这个键') 键值不存在时不会报错,会返回自定义的信息或者None
    dict嵌套
    在字典的嵌套字典中添加键值对
    dic = {
    'name':['alex','wusir','taibai'],
    'py9':{
    'time':'1213',
    'learn_money':19800,
    'addr':'CBD',
    },
    'age':21
    }
    练习题1:

    # 字典练习题
    # 1、元素分类
    #有如下值li= [11,22,33,44,55,66,77,88,99,90],
    # 将所有大于66的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    #即:['k1': 大于66的所有值列表, 'k2': 小于66的所有值列表]

    li= [11,22,33,44,55,66,77,88,99,90]
    dic = {}
    # 大于66的所有值列表
    li_more = []
    # 小于66的所有值列表
    li_less = []
    for i in li:
    if i == 66:
    continue
    elif i>66:
    li_more.append(i)
    else:
    li_less.append(i)
    dic['k1'] = li_more
    dic['k2'] = li_less
    练习题2:
     输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    要求:1:页面显示 序号 + 商品名称,如:
              1 手机
               2 电脑
                  …
         2: 用户输入选择的商品序号,然后打印商品名称
      3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。

    li = ["手机", "电脑", '鼠标垫', '游艇']
    while 1:
    for i in li:
    print('{} {}'.format(li.index(i)+1,i))
    # break
    buy = input("输入自己想要的序号,输入q或Q退出: ")
    if buy.isdigit():
    # pass
    if int(buy) in range(1,5):
    print("想要的是{0}:{1}".format(int(buy),li[int(buy)-1]))
    else:
    print("请输入指 定商品范围的数字!")
    elif buy.upper() == 'Q':
    break
    else:
    print("请输入数字!")
     

    总结:

    1.format的格式化操作;

    2.通过列表.index来取索引下标;

    3.isdigit()的使用;

    4..upper的使用
    ---------------------

  • 相关阅读:
    Kubernetes服务目录的设计
    浅谈移动边缘计算
    kubernetes源码分析 -- kube-proxy
    openstack dpdk
    KVM irqfd and ioeventfd
    dpdk CUSE
    《springboot实战》丁雪峰翻译 笔记
    photoshop
    office word使用
    baidu地图api使用
  • 原文地址:https://www.cnblogs.com/ly570/p/11186728.html
Copyright © 2020-2023  润新知