zoukankan      html  css  js  c++  java
  • python 基础 字典

    字典操作

     字典一种key - value 的数据类型

    1. 特性:
    2. 无顺序
    3. 去重
    4. 查询速度快,比列表快多了
    5. 比list占用内存多

    语法:

    info = {
        'abc001': "Ben",
        'abc002': "Mike",
        'abc003': "John",
    }

    字典的特性

    • 字典是无序的
    • key必须是唯一的

    查找

    >>> info = {
    ...     'abc001': "Ben",
    ...     'abc002': "Mike",
    ...     'abc003': "John",
    ... }
    >>>
    >>>
    >>> print(info.get("abc001")) 
    Ben
    >>>
    >>> print("abc003"in info)  // 标准用法
    True
    >>>
    
    // 反馈True为查找到 ,false为查不到

    添加

    info = {
        'stu1101': "TengLan Wu",
        'stu1102': "LongZe Luola",
        'stu1103': "XiaoZe Maliya",
    }
    >>> info['abc004']='Tom'   //添加
    >>> print(info)
    {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
    >>>

    取值

    >>>
    >>> info
    {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
    >>>
    >>>
    >>> print(info['abc001'])
    Ben
    >>>
    >>>
    >>> print(info['abc004'])
    Tom
    >>>

    另一种字典取值方式

    get()

    >>>
    >>> a = {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
    >>>
    >>> a.get('abc001')
    'Ben'
    
    >>> a.get('abc002')
    'Mike'
    >>>

    删除

    >>> info
    {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
    >>>
    >>> info.pop("abc004")  # 标准删除  
    'Tom'
    >>> info
    {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'}
    
    # 不加参数默认删除最后一个值
    >>> d = [1,2,3,4,5]
    >>>
    >>> d.pop()
    5
    >>> d
    [1, 2, 3, 4]
    
    >>> 
    >>> info.popitem()  # 随机删除
    ('abc003', 'John')
    >>> info
    {'abc001': 'Ben', 'abc002': 'Mike'}
    >>>
    # del 是Python通用删除方法
    >>> del info['abc001']
    >>> info
    {'abc002': 'Mike'}
    >>>

    循环dict

    info = {
        'abc001': "Ben",
        'abc002': "Mike",
        'abc003': "John"
    }
    //字典循环
    for i in info:
        print(i,info[i])

    其他

    keys values update items

    ##keys
    
    >>> info = {
    ...     'abc001': "Ben",
    ...     'abc002': "Mike",
    ...     'abc003': "John"
    ... }
    >>> print(info)
    {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'}
    >>>
    
    
    #values
    >>> print(info.values())           #把所有的值打印不包括Key
    dict_values(['Ben', 'Mike', 'John'])
    
    
    #keys
    >>> print(info.keys())             #把所有Key打印出来,不包括values
    dict_keys(['abc001', 'abc002', 'abc003'])
    >>>
    >>>
    
    #update
    >>> b ={
    ...     'stu1101': "alex",
    ...     1:2,
    ...     3:4
    ... }
    >>> info.update(b)   #合并字典,没有的创建新的,存在的覆盖
    >>> print(info)
    {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'stu1101': 'alex', 1: 2, 3
    : 4}
    >>>
    >>>
    
    #items
    >>> print(info.items())   #字典转换列表
    dict_items([('abc001', 'Ben'), ('abc002', 'Mike'), ('abc003', 'John'), ('stu1101
    ', 'alex'), (1, 2), (3, 4)])
    >>>

    python3 循环字典两种方法

    items()

    >>> D = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.
    taobao.com'}
    
    >>> for k,v in D.items():
    ...  print(k,v)
    ...
    
    >>> D.items()
    dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao
    ', 'www.tao.com')])
    
    
    # 执行结果
    Google www.google.com
    Runoob www.runoob.com
    taobao www.taobao.com

    这种方法,大数据时候不要用,因为要把字典转换成一个列表元组,对占用性能。

    推荐循环字典方法:

    >>> for i in D:
    ...  print(i,D[i])
    ...
    
    # 执行结果
    Google www.google.com
    Runoob www.runoob.com
    taobao www.tao.com
  • 相关阅读:
    HDU1069:Monkey and Banana(DP+贪心)
    hdu 4497 GCD and LCM(2013 ACM-ICPC吉林通化全国邀请赛——题目重现)
    vb6.0 倒计时
    硬盘分区表
    踽踽独行的岁月,感谢与你的相遇
    每天学点Linux:二
    windows下Qt Creator5.1.0编写程序以及调用OpenCV库
    【每周一译】愚蠢的指标:Java中使用最多的关键字
    centos 7 没有ifconfig 命令
    About stats collected
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/7921800.html
Copyright © 2011-2022 走看看