zoukankan      html  css  js  c++  java
  • python学习(字典)

     字典 

    字典是一些列键-值对,每个键都与一个值相关联。

    dict key 必须是不可变数据类型,可哈希, value:任意数据类型。

    数据类型划分:可变数据类型,不可变数据类型
    不可变数据类型:元组,bool int str       可哈希
    可变数据类型:list,dict set             不可哈希

    dict 优点:二分查找去查询
             存储大量的关系型数据
          特点:无序的

    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

    dic1['high'] = 60   #没有键值对,添加

    print(dic1)     --->{'age': 18, 'name': 'jin', 'sex': 'male', 'high': 60}

    dic1['age'] = 16  #如果有键,则值覆盖 相当于改

    print(dic1)  ---->{'age': 16, 'name': 'jin', 'sex': 'male'}

    dic1.setdefault('weight') # 没有此键才添加。  不写值默认返回None

    print(dic1)----->{'age': 18, 'name': 'jin', 'sex': 'male', 'weight': None}

    dic1.setdefault('weight',150)

    print(dic1)----->{'age': 18, 'name': 'jin', 'sex': 'male', 'weight': 150}

    dic1.setdefault('name','sb') # 有此键,不做任何改变

    print(dic1)  ----->{'age': 18, 'name': 'jin', 'sex': 'male'}

    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

    dic1.pop('age') # 按键去删除

    print(dic1)----->{'name': 'jin', 'sex': 'male'}

    print(dic1.pop('age'))    有返回值,返回的是该键所对应的值

    dic1.pop('二哥')  # 删没有此键,会报错

    print(dic1)----->KeyError: '二哥'

    print(dic1.pop('二哥',None)) ----》None# 不知道有没有这个键 的时候,加个参数并返回一般用None,给予提示

    dic1.popitem()  # 随机删除

     print(dic1)---->{'age': 18, 'name': 'jin'}

    print(dic1.popitem())  ---->  ('name', 'jin')   有返回值,返回值为 元组  里面是删除的键 和值。

    del dic1['name']   #  根据键 来删除

     print(dic1) ------>{'age': 18, 'sex': 'male'}

    del dic1['hobby']

    print(dic1)  ---->KeyError: 'hobby'   #没有此键报错

    del dic1     #删除整个字典

    print(dic1) ----》NameError: name 'dic1' is not defined

    dic1.clear() #清空字典

    update

    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

    dic = {"name":"jin","age":18,"sex":"male"}

    dic2 = {"name":"alex","weight":75}

    dic2.update(dic)  #把dic所有的键值对,更新到dic2中,有的覆盖,没有的添加

    print(dic) ---》{'name': 'jin', 'age': 18, 'sex': 'male'}

    print(dic2)---》{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

    dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

     print(dic1.keys())  ---->dict_keys(['name', 'age', 'sex']) #打印所有的键

     print(dic1.values())---->dict_values(['jin', 18, 'male']) #打印所有的值

    print(dic1.items())--->dict_items([('name', 'jin'), ('age', 18), ('sex', 'male')])

    print(type(dic1.keys()))  ---> <class 'dict_keys'>

    for i in dic1:    # 遍历字典,没有标示默认是键

     for i in dic1.keys(): #   遍历dic的所有键

    for i in dic1.values():  #遍历dic的所有值

    for k,v in dic1.items()   #

    v1 = dic1['name']   根据键找值

    print(v1) ----》jin

    v2 = dic1['name1']  # 没有此键会报错

    print(v2)-----》KeyError: 'name1'

                        dic.get(key,None)

    v3 = dic1.get('name')    # 用get按键找值

    print(v3) ----》 jin

    v4 = dic.get("name1")   #当用get去找不存在的键,会有以给返回值,默认是None

    print(v4)  ----->None

    v5 = dic.get("name1","没有此键")

    print(v5)  ----->没有此键    # 可以自己拟定

    a,b = 1,2
    print(a,b)     #1 2
    a = 1
    b = 2
    a,b = b,a
    print(a,b)     #2 1
    a,b = [1,2],[2,3]
    print(a,b)   #[1, 2] [2, 3]
    a,b = (1,2)
    print(a,b)      #1 2
    View Code
  • 相关阅读:
    maven pom 详细配置
    寻找二叉树最远的叶子结点
    控制两个线程的启动顺序
    tensorflow之神经网络实现流程总结
    ubuntu服务器安装FTP服务
    ubuntu服务器 安装 seafile 个人网盘
    软件工程实践总结作业~
    Beta 答辩总结
    Beta 冲刺 (7/7)
    Beta 冲刺 (6/7)
  • 原文地址:https://www.cnblogs.com/bzluren/p/10534014.html
Copyright © 2011-2022 走看看