zoukankan      html  css  js  c++  java
  • python day05 字典

    #字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

    字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    #数据类型划分:可变数据类型,不可变数据类型
    不可变数据类型:元组,bool int str 可哈希
    可变数据类型:list,dict set 不可哈希
    dict key 必须是不可变数据类型,可哈希,
    value:任意数据类型。
    dict 优点:二分查找去查询
    存储大量的关系型数据
    特点:无序的

    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
    
    #增:
    # dic1['high'] = 185  #没有键值对,添加
    # dic1['age'] = 16  #如果有键,则值覆盖
    
    # dic1.setdefault('weight')  # 有键值对,不做任何改变,没有才添加。
    # dic1.setdefault('weight',150)
    # dic1.setdefault('name','二哥')
    # print(dic1)
    
    #
    # print(dic1.pop('age'))   # 有返回值,按键去删除
    # print(dic1.pop('二哥',None))   # 可设置返回值
    # print(dic1)
    
    # print(dic1.popitem())  # 随机删除 有返回值 元组里面是删除的键值。
    
    # del dic1['name1']
    # print(dic1)                 #报错
    # del dic1
    # print(dic1)
    # print(dic1.get('name1','没有这个键'))
    
    # dic1.clear() #清空字典
    
    #改  update
    # dic1['age'] = 16
    
    # dic = {"name":"jin","age":18,"sex":"male"}
    # dic2 = {"name":"alex","weight":75}
    # dic2.update(dic)  #
    #
    # print(dic)
    # print(dic2)
    
    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
    #
    # print(dic1.keys(),type(dic1.keys()))
    # print(dic1.values())
    # print(dic1.items())
    
    # for k,v in dic1.items():
    #     print(k,v)

    #字典的嵌套

    dic = {
        'name':['alex','wusir','taibai'],
        'py9':{
            'time':'1213',
            'learn_money':19800,
            'addr':'CBD',
               },
        'age':21
    }
    
    # dic['age'] = 56
    # print(dic['name'])
    # dic['name'].append('ritian')
    # dic['name'][1] = dic['name'][1].upper()
    # print(dic)
    
    # dic['py9']['female'] = 6
    # print(dic)

     #练习题

    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 ={}
    # l_greater=[] #大于66的所有值列表
    # l_less=[]    #小于66的所有值列表
    # for i in li:
    #     if i == 66:continue
    #     if i > 66 :
    #         l_greater.append(i)
    #     else :
    #         l_less.append(i)
    # dic.setdefault('k1',l_greater)
    # dic.setdefault('k2',l_less)
    # print(dic)
    
    2、输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    要求:1:页面显示 序号 + 商品名称,如:
         1 手机
         2 电脑
                  …
         2: 用户输入选择的商品序号,然后打印商品名称
      3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。
    
    # flag = True
    # while flag:
    #     li = ["手机", "电脑", "鼠标垫", "游艇"]
    #     for i in li:
    #         print('{}		{}'.format(li.index(i)+1,i))
    #     num_of_chioce = input('请输入选择的商品序号/输入Q或者q退出程序:')
    #     if num_of_chioce.isdigit():
    #         num_of_chioce = int(num_of_chioce)
    #         if num_of_chioce > 0 and num_of_chioce <= len(li):
    #             print(li[num_of_chioce-1])
    #         else:print('请输入有效数字')
    #     elif num_of_chioce.upper() == 'Q':break
    #     else:print('请输入数字')
  • 相关阅读:
    写一点gil锁吧,其实真的我感觉没啥关系。
    《Effective Python》59个有效方法(今日到25)
    《Python学习笔记本》第五章 迭代器 笔记以及摘要(完结)
    《Python学习笔记本》第四章 函数 笔记以及摘要(完结)
    《Python学习笔记本》第三章 表达式 笔记以及摘要(完结)
    java 之冒泡排序
    Apache Tomcat 之路(三 部署多个应用)
    Apache Tomcat 之路(二 部署web 应用程序)
    Apache Tomcat 之路(一 基本概念)
    移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器
  • 原文地址:https://www.cnblogs.com/liujinlei/p/9843908.html
Copyright © 2011-2022 走看看