zoukankan      html  css  js  c++  java
  • python 字典操作

    python dict字典

    字典是另一种可变容器模型无序的,且可存储任意类型对象 
    字典首先是键值对形式 
    key : value 
    使用{}表示

    • 字典的特点:

    键必须是唯一的,但值则不必唯一。

    值可以取任何数据类型,但键必须是不可变的类型。

      不可变类型:数字、字符串、元组;

      可变类型:列表、字典。

    字典中键值是无序的。

     

    字典的基本操作

    1.创建字典

    >>> dic1 = {'k1':'v1' }
    >>> dic1
    {'k1': 'v1'}

    2.访问字典
    dic[key] 形式返回键key对应的值value,如果key不在字典中会引发一个KeyError。

    >>> dic1['k1']
    'v1'
    >>> dic1['k2']
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'k2'

    3.判断key是否在字典中

    >>> 'k1' in dic1
    True
    >>> 'k2' in dic1 
    False

    有返回True,无返回False

    4.更新字典 update方法

    >>> dic2 = {'k2':'v2'}
    >>> dic1.update(dic2)
    >>> dic1
    {'k2': 'v2', 'k1': 'v1'}

    5.删除操作
    删除一个键对

    >>> del dic1['k1']
    >>> dic1
    {'k2': 'v2'}

    删除整个字典

    >>> del dic1
    >>> dic1    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'dic1' is not defined

    清空字典

    >>> dic1 = {'k1':'v1' }
    >>> dic1.clear()
    >>> dic1
    {}

    删除一个键,并返回改键对应的值

    >>> dic1 
    {'k2': 'v2', 'k1': 'v1'}
    >>> dic1.pop('k2')
    'v2'
    >>> dic1
    {'k1': 'v1'}

    6.字典排序
    按照键排序

    >>> dic3 = {11:'abc','bcd':'kkk','ttt':'aaa',99:33}
    >>> dic3
    {'bcd': 'kkk', 99: 33, 11: 'abc', 'ttt': 'aaa'}
    >>> sorted(dic3)
    [11, 99, 'bcd', 'ttt']

    按照键对进行排序

    >>> dic3 = {11:'abc','bcd':'kkk','ttt':'aaa',99:33}
    >>> dic3
    {'bcd': 'kkk', 99: 33, 11: 'abc', 'ttt': 'aaa'}
    >>> sorted(dic3.items())
    [(11, 'abc'), (99, 33), ('bcd', 'kkk'), ('ttt', 'aaa')]

    7.遍历字典
    遍历键

    >>> for i in dic3.keys():
    ...     print i
    ... 
    bcd
    99
    11
    ttt

    遍历值

    >>> for i in dic3.values():
    ...     print i            
    ... 
    kkk
    33
    abc
    aaa

    遍历键值

    >>> for i in dic3.items(): 
    ...     print i           
    ... 
    ('bcd', 'kkk')
    (99, 33)
    (11, 'abc')
    ('ttt', 'aaa')

    注意使用字典的时候: 
    1、不能允许一键对应多个值; 
    2、键必须是可哈希的。

     

    字典的方法总结:

    1、dict.keys() 返回一个包含字典所有KEY的列表; 
    2、dict.values() 返回一个包含字典所有value的列表; 
    3、dict.items() 返回一个包含所有(键,值)元祖的列表; 
    4、dict.clear() 删除字典中的所有项或元素; 
    5、dict.copy() 返回一个字典浅拷贝的副本; 
    6、dict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None); 
    7、dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None); 
    8、dict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in; 
    9、dict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表; 
    10、dict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常; 
    11、dict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值; 
    12、dict.update(bdict) 将字典bdict的键值对添加到字典adict中。


  • 相关阅读:
    7月23日 R进行层次聚类算法的继续完善
    明天学习的内容
    MySql快速导出为excel文件
    数据挖掘的隐私边界 【转自《中欧商业评论》】
    【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
    7月20日下一步工作
    R对term进行kmeans聚类完整实例(tm包)
    数学之美 系列一 统计语言模型
    7月30日总结
    MathType输入Support 自动分开的问题
  • 原文地址:https://www.cnblogs.com/iteemo/p/6716767.html
Copyright © 2011-2022 走看看