zoukankan      html  css  js  c++  java
  • Day4

    ------------恢复内容开始------------

    细讲基础数据类型-字典

    字典是Python语言中唯一的映射类型

    定义:{key1:value,key2:value2}

    1.键与值用冒号“:”分开:

    2.项与项用逗号“,”分开:

    特性:

    1.key-value结构

    2.key必须课hash.切必须为不可变数据类型.必须唯一

    3.可存放任意多个值、可修改、可以不唯一

    4.无序

    5.查询速度快,且不受dict的大小影响。

    字典的创建与常见操作

    person = {"name":"qiangzi","age":25}

    #或

    person = dict(name = 'qiangzi',age = 25)

    #或

    {}.fromkeys()  #默认 value值  批量输出字典

    >>> name = ['qiangiz','xifeng','shaohua','longzong']
    >>> {}.fromkeys(name)
    {'qiangiz': None, 'xifeng': None, 'shaohua': None, 'longzong': None}
    >>> {}.fromkeys(name,100)
    {'qiangiz': 100, 'xifeng': 100, 'shaohua': 100, 'longzong': 100}

    1.直接赋值

    person = {'age': '25', 'name': 'qiangzi'}
    >>>
    >>> person['salary'] = 2000
    >>> person
    {'age': '25', 'name': 'qiangzi', 'salary': 2000}

    键、值、键值对
        1、dic.keys() 返回一个包含字典所有KEY的列表;

    a = {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary:': 2000}
    >>> a.keys()
    dict_keys(['age', 'name', 'job', 'salary:'])

    
        2、dic.values() 返回一个包含字典所有value的列表;

    a = {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary:': 2000}

    >>> a.values()
    dict_values([25, 'qiangzi', 'it', 2000])

    
        3、dic.items() 返回一个包含所有(键,值)元祖的列表;

    a = {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary:': 2000}
    >>> a.items()
    dict_items([('age', 25), ('name', 'qiangzi'), ('job', 'it'), ('salary:', 2000)])

    
        4、dic.iteritems()、dic.iterkeys()、dic.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
    新增
        1、dic['new_key'] = 'new_value';
    person = {'age': '25', 'name': 'qiangzi'}
    >>> person['salary:'] = 2000
    >>> person
    {'age': '25', 'name': 'qiangzi', 'salary:': 2000}     2、dic.setdefault(key, None) ,如果字典中不存在Key键,由 dic[key] = default 为它赋值;_

    person = {'age': '25', 'name': 'qiangzi', 'job': 'it', 'salary': 2000}
    >>> person.setdefault('school','hiegongcheng')
    'hiegongcheng'
    >>> person
    {'age': '25', 'name': 'qiangzi', 'job': 'it', 'school': 'hiegongcheng', 'salar:': 2000}
    >>>

    删除    del  删除通用
            del 删除

    {'age': '25', 'name': 'qiangzi', 'job': 'it', 'school': 'hiegongcheng', 'salary': 2000}
    >>> del person['school']
    >>> person
    {'age': '25', 'name': 'qiangzi', 'job': 'it', 'salary': 2000}
    >>>

    
        1、dic.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;

    {'age': '25', 'name': 'qiangzi', 'job': 'it', 'salary': 2000}
    >>> person.pop('job')
    'it'
    >>> person
    {'age': '25', 'name': 'qiangzi', 'salary': 2000}

    >>> person.pop('job')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'job'

        2、dic.clear() 删除字典中的所有项或元素;

    person = {'age': '25', 'name': 'qiangzi', 'salary': 2000}
    >>> person.clear()
    >>> person
    {}

        
    修改
        1、dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值;
    person = {'age': '25', 'name': 'qiangzi'}
    >>>
    >>> person['salary:'] = 2000
    >>> person
    {'age': '25', 'name': 'qiangzi', 'salary:': 2000}     2、dic.update(dic2) 将字典dic2的键值对添加到字典dic中

    >>> a = {'name':'xifeng','age':25}
    >>> a1 = {'name': 'qiangzi', 'job': 'it', 'salary:': 2000}
    >>> a.update(a1)
    >>> a
    {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary:': 2000}

    
    查看
        1、dic['key'],返回字典中key对应的值,若key不存在字典中,则报错;

    a = {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary:': 2000}
    >>> a['age']
    25
    >>> a['age1']
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'age1'

    
        2、dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)

    a = {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary:': 2000}
    >>> a.get('name')
    'qiangzi'
    >>> a.get('name1')
    >>> print(a.get('name1'))
    None

    
    循环
        1、for k in dic.keys()#推荐用法

    a = {'age': 25, 'name': 'qiangzi', 'job': 'it', 'salary': 2000}
    >>> for i in a:
    ... print(i,a[i])
    ...
    age 25
    name qiangzi
    job it
    salary 2000

    
        2、for k,v in dic.items()
        3、for k in dic
    长度
        1、len(dic)

    细讲基础数据类型-集合

    集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合。

    集合中的元素有三个特征:

    1.确定性(元素必须可hash)

    2.互异性(去重)

    3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。

              注意:集合存在的意义就在于去重和关系运算

    元素的增加

    单个元素的增加 : add(),add的作用类似列表中的append

    set_a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    >>> set_a.add('11,14,17')
    >>> set_a
    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '11,14,17'}

    对序列的增加 : update(),而update类似extend方法,update方法可以支持同时传入多个参数:

    元素的删除

    集合删除单个元素有两种方法:

    元素不在原集合中时:set.discard(x)不会抛出异常

    set = {41, 11, 1, 7}

    >>> set.discard(7)
    >>> set
    {41, 11, 1}
    >>> set.discard(7)
    >>>
    >>>

    pop():由于集合是无序的,pop返回的结果不能确定,且当集合为空时调用pop会抛出KeyError错误,

    set = {11, 1}
    >>> set.pop() #删除并返回
    11
    >>> set
    {1}

    set.remove(x)会抛出KeyError错误

    >>> a={1,2,3,4}
    >>> a.discard(1)
    >>> a
    {2, 3, 4}
    >>> a.discard(1)
    >>> a
    {2, 3, 4}
    >>> a.remove(1)
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    KeyError: 1

    clear():清空集合

    >>> a={3,"a",2.1,1}
    >>> a.pop()
    >>> a.pop()
    >>> a.clear()
    >>> a
    set()
    >>> a.pop()
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    KeyError: 'pop from an empty set'


    查 直接查

    set = {1}
    >>> 1 in set
    True

    集合的关系运算

    交集    # &符号表示交集

    >>> l= {'张三','李四','老男孩'}
    >>> p = {'张三','李四','alex'}
    >>> print(l & p)
    {'张三', '李四'}

    并集  #  |表示并集

    >>> l= {'张三','李四','老男孩'}
    >>> p = {'张三','李四','alex'}

    >>> print(l & p)
    {'张三', '李四'}

    差集   #    -表示差集

    >>> l= {'张三','李四','老男孩'}
    >>> p = {'张三','李四','alex'}

    >>> print(l - p)
    {'老男孩'}

    对称差集   # ^ 对称差集

    >>> l= {'张三','李四','老男孩'}
    >>> p = {'张三','李四','alex'}

    >>> print(l^p)
    {'老男孩', 'alex'}

    包含关系

    in,not in:判断某元素是否在集合内
    ==,!=:判断两个集合是否相等

    两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:

      • set.isdisjoint(s):判断两个集合是不是不相交
      • set.issuperset(s):判断集合是不是包含其他集合,等同于a>=b
      • set.issubset(s):判断集合是不是被其他集合包含,等同于a<=b

     

     

    ------------恢复内容结束------------

  • 相关阅读:
    第三节:MySQL的存储引擎及常用数据类型介绍
    第一节:MySQL的安装及使用
    10-单例模式
    windows linux—unix 跨平台通信集成控制系统----系统硬件信息获取
    windows linux—unix 跨平台通信集成控制系统----文件搜索
    Linux下查看内核、CPU、内存及各组件版本的命令和方法
    Linux下使用popen()执行shell命令
    图像边缘检测--OpenCV之cvCanny函数
    OpenCV GUI基本操作,回调函数,进度条,裁剪图像等
    图像边缘检测--OpenCV之cvCanny函数
  • 原文地址:https://www.cnblogs.com/wzq1997/p/12920107.html
Copyright © 2011-2022 走看看