zoukankan      html  css  js  c++  java
  • Python的学习之旅———基本数据类型(字典)

    存多个值,key-value存取,取值速度快,无序

    1 定义:key必须是不可变类型,value可以是任意类型
    2 d={[1,2,3]:1} #列表不能当做字典的key
    3 d={(0,'mac'):3000} 元组可以是 字典
    4 
    5 举例
    6 info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})

    按key存取值:可存可取

    1 print(info['sex'])
    2 info['hobbies']=['read','music','play','sleep','eat']
    3 print(info)

    长度len
    print(len(info))
    成员运算in和not in 返回的是 True 和False

    删除

    1 print(info.pop('name'))
    2 print(info.pop('name1213','确实是没有的,我的哥')) 如果不存在 不会崩溃
    3 print(info.pop('name1213',None))

    键keys(),值values(),键值对items()
    print(info.keys()) 可迭代类型
    print(info.values()) 可迭代类型
    print(info.items()) 可迭代类型

    返回的值 看着是列别不过不是列表 不可以直接使用 是 dic_类型
    需要使用next()去取值.

    循环
    常用方法  取出
    1 for key in info.keys():
    2     print(key)
    3 for val in info.values():
    4     print(val)
    5 
    6 for item in info.items():   取出来的是一个元组
    7     print(item[0],item[1])

    info={'name':'egon','age':18,'sex':'male'}
    print(info['name123']) 会报错

    推荐字典取值方式  .get()

    info.get('name123','呵呵呵')

    推荐改值的方式

    info.setdefault('hobbies',['read','music']

    使用get方法取值 即使 'name123' 不存在在列表中也不会报错 返回 预设的 呵呵
    info.popitem()
    随机删除键值对 返回删除的值 (元组)

    1 for k,v in info.items(): #k,v=('name', 'egon')
    2 print(k,v)              取出来的直接是key和value值
    3 print(info.setdefault('hobbies',['read','music'])) #有则不改,返回已经有的值,没有则新增,返回新增的值
    4 print(info)
     1 print(id(info.setdefault('hobbies',[])))
     2 print(id(info['hobbies']))
     3 l=[]
     4 
     5 info={'name':'egon','age':18,'sex':'male',}
     6 if 'hobbies' not in info:
     7 info['hobbies']=[]
     8 info['hobbies'].append('music')
     9 else:
    10 info['hobbies'].append('read')
    11 
    12 if 'hobbies' not in info:
    13 info['hobbies'] = []
    14 info['hobbies'].append('music')
    15 else:
    16 info['hobbies'].append('read')
    17 
    18 print(info)
    19 
    20 info.setdefault('hobbies',[]).append('music')
    21 
    22 # {'name': 'egon', 'age': 18, 'sex': 'male', 'hobbies': ['music', ]}
    23 info.setdefault('hobbies',[]).append('read') #['music', ].append('read')
    24 print(info)
    25 
    26 了解
    27 info_new={'a':1,'age':19}
    28 info.update(info_new)
    29 print(info)
    30 
    31 dic={'name':None,'age':None,'sex':None,'hobbies':None}
    32 dic1={}.fromkeys(['name','age','hobbies'],None)
    33 print(dic1)
  • 相关阅读:
    死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁
    死磕 java同步系列之AQS起篇
    死磕 java同步系列之自己动手写一个锁Lock
    死磕 java同步系列之synchronized解析
    死磕 java同步系列之volatile解析
    死磕 java同步系列之JMM(Java Memory Model)
    解决Linux下SSH超时自动断开
    Git常用命令
    JVM常用虚拟机命令汇总
    理解GC日志
  • 原文地址:https://www.cnblogs.com/surehunter/p/7529071.html
Copyright © 2011-2022 走看看