zoukankan      html  css  js  c++  java
  • Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型。所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列。字典是可变类型。字典中的数据是无序排列的。

    4.1.1字典的创建及赋值

    dict1={}
    dict2={'name':John,'age':24}

    使用dict()函数创建字典。

    dict()函数接受序列,或关键字参数作为参数创建字典。若不提供参数则创建空字典。

    dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典
    dict2=dict(x=1.y=2)#接受关键字参数作为参数

    使用内建方法fromkeys()来创建一个“默认字典”,该字典中的键均对应相同的值,如果值未给出则为None。

    dict1={}.fromkeys(('x','y'),1)
    dict1
    >>>{'y':1,'x':1}

    4.1.2字典中值得访问

    通过字典中的键访问值。

    info={'name':'bing','age':24,'sex':'male'}
    info['name']
    >>>'bing'

    Python中默认通过访问键来获取值。

    info={'name':'bing','age':24,'sex':'male'}
    for key in info:
        print 'key=%s,value=%s'%(key,info[key])
    >>>
    key='age',value='24'
    key='name',value='bing'
    key='sex',value='male'

    4.1.3更新字典

    对字典的更新包括以下操作,增加一个“键-值”对,删除字典元素,清除字典中所有或个别条目,修改某个元素的值。下面举例说明。

    info={'name':'bing','age':24,'sex':'male'}
    info['name']='xiaobing'#更新已有条目
    info['addr']='lanzhou'#增加新条目

     对字典的删除一般指删除某个“键-值”对,删除整个字典会用到del语句。

    del info['name'] #删除dict中键为name的条目
    info.clear()        #清空字典所有条目
    del info             #删除整个字典
    info.pop(‘name’)#返回并删除键为name的条目

    4.2.1映射类型的操作符

    1、字典查找操作符:[]

    使用方法dict[k]=n,将n赋值给dict中键为k的条目;dict[k],访问dict中键为k的条目。

    2、成员关系操作符:(in,not in)

    dict1={'name':'bing','age':24,'sex':'male'}
    'name' in dict1
    >>>True
    'phone'in dict1
    >>>False

    需要注意的是in和not in仅作为检查某个键是否在字典中。

    4.3.1相关函数

    1、dict(),用来创建字典,前面说过不再赘述。

    2、len(),返回字典长度,即字典中的“键-值”对个数

    3、hash(),判断某个对象是否可以做字典的键。讲一个对象传递给hash(),会返回这个对象的哈希值,只有这个对象是可哈希的才可以作为字典的键。

    4.4.1字典的内建方法

    下面会提到字典的一些内建方法,其余的请在有需要是查阅文档。

    1、dict.keys(),返回一个列表包含字典中的所有键。

    2、dict.values(),返回一个列表包含字典中的所有值。

    3、dict.items(),返回一个由(键,值)元组作为元素的列表。

    4、dict.clear(),删除字典中所有元素。

    5、dict.copy(),返回字典的一个副本(浅复制)。

    6、dict.update(dict2),将字典dict2的键-值对添加到dict。

    4.5.1对字典中键的一些说明

    1、键不允许一对多,类似映射中两个集合的对应关系。

    2、键必须是可哈希的,所有不可变类型都是可哈希的故可作为键,可变类型不可哈希即不可作为键,如列表,字典类型。

    4.6集合数据类型

    数学上把集合称作不同元素的集合,集合(set)成员被称为集合元素。集合对象是一组无需可哈希的值。集合支持 in,not in 检查操作符,用len得到集合大小(元素个数),但集合无法创建索引因为集合是无需排列。集合有不同两种类型,可变集合(set)和不可变集合(frozenset)。

    4.6.1集合的创建

    集合只能通过它的工厂方法创建

    s=set('python')
    s
    >>>set(['y','o','n','t','p','h'])
    type(s)
    >>> <type,'set'>

    4.6.2集合元素的操作

    可以遍历查看集合元素

    s=set('python')
    p in s
    >>>True
    x in s
    >>>False
    for i in s
      print i
    >>>
    y
    o
    n
    t
    p
    h

    通过集合的内建方法和操作符增加或删除集合元素:

    1、set.add(),向集合添加新元素

    2、set.update(),集合的合并

    3、set.remove(),删除集合中元素

    4.7集合成员关系操作

    对于集合真正重要的是成员关系及子集的关系操作。

    1、成员关系in,not in。

    判断一个元素是否在一个集合中,返回True 或者False。

    2、等价与不等价==,!=

    集合等价指两个集合中每个元素都相同

    3、真子集与子集(<,<=)

    4、并集

    符号|或者union()方法。

    5、交集

    符号&或者等价方法intersection()

    6、差集

    符号-或者等价方法difference()

  • 相关阅读:
    我说AOP(面向切面编程)--藏在苹果里的五角星
    mysql workbench 一个‘愚蠢’的设计
    .Net MVC Json 日期格式
    es6 import
    asp.net mvc 模型绑定太糙淡了
    asp.net mvc 报错 CS1617: Invalid option ‘6’ for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default
    撸代码时到底用var好还是强类型变量好
    iphone5 从ios7升级到最新9.2
    修复win7 只有IE64 能上网 其他浏览器及应用都无法联网
    使用Teleri 导出实体类数组到Excel
  • 原文地址:https://www.cnblogs.com/xiaobing-zombie/p/4230996.html
Copyright © 2011-2022 走看看