zoukankan      html  css  js  c++  java
  • dict字典

    --------------以下部分摘自While老师的教学资料

    字典:

    字典一个元素呈键值对的形式,以逗号分割,以大括号包围的无序的,可以修改的序列。

    字典python基础数据类型当中唯一一个映射关系的数据类型通常对应JSON

    定义:

    Zip函数:将几个序列对应索引位上的元素分到一个元组当中,形成一个列表,子元组的个数取决于最短序列的长度

    由于字典无序,所以我们定义字典和字典生成之后的元素的顺序是不同的

    dict

    {}

    Fromkeys 以后面的序列的元素为键,默认值为None的字典

    字典的特点:

    因为字典是无序的,所以字典没有索引值,

    因为字典没有索引值,所以字典以键取值(字典的键相当于列表的索引)

    因为字典以键取值,所以字典的键唯一且不可修改,

    因为字典的键不可修改,所以列表和字典不可以给字典做键。

    字典的方法

    字典的取值

    keys

    获取字典所有的键

    values

    获取字典所有的值

    get

    以键取值,如果指定键不存在,默认返回None,可以指定返回内容

    update

    更新指定键的内容,如果键不存在,创建

    setdefault

    设置默认,如果键存在,返回值,如果键不存在,创造键,值默认为None,值也可以自定义

    items

    返回字典键值呈元组形式的格式

     

     

    字典的删除

    pop

    弹出,返回并删除指定键对应的值

    popitem

    随机弹出一个键值元组,这里随机的原因是因为字典无序

    clear

    清空字典

    字典的判断

    has_key

    判断指定的键是否在字典当中,即将被废除,之后我们用in

     

    视图模式

    viewitems

    视图模式的主要特征是与字典保持同步,在我们python基础部分不做深入研究

    viewkeys

    viewvalues

    迭代模式

    Iteritems

    在python2.4版本之后,为了提高python运行效率python提出了迭代器、生成器、装饰器的定义,而字典的迭代模式正式去用了迭代器原理,

    当我们直接调用的时候,我们只能得到一个内存地址,当我们具体想要取值的时候,需要借助next方法

    Iterkeys

    itervalues

        

    copy 浅拷贝,进行浅拷贝

    在python当中,浅拷贝指的是拷贝对象和被拷贝对象的嵌套部分指向统一的内存。

     

    str

    list

    tuple

    dict

    是否有序

    是否可修改

    方法多少

    很多

    一般

    很少

    较多   映射关系

     

     

    d = {}
    print(type(d))
    emp = ['Tom', 20, 3900.00]
    print(emp[0])
    employee = {"name": "Tom", "age": 20, "salary": 3900.00}  # 字典里的:隔开了键与值,然后用,隔开其他的键值对
    print(employee)
    book = dict(title="pyrhon入门", author="Tom", price=59.00)  # 字典也可以用函数方式声明,但是参数要以=形式传参,键也会以字符串形式出现
    print(book)
    lit = [("name", "Tom"), ("age", 20)]  # 有规律的列表也可以转换为字典
    emp2 = dict(lit)
    print(emp2)
    keys = ["name", "age", "job"]
    emp3 = dict.fromkeys(keys)  # .fromkeys是一个方法,可以向变量传入一个列表,,列表里的每一个元素作为字典表的一个键,如果没有赋值,则以None形式表现出来
    print(emp3)

     

    emp = dict(name="Tom", age=20, department="技术部", salary=8900.00)
    book={'title': 'python入门经典', 'author': '优品课堂', 'price': 59.00, 'publisher': {'title': '清华大学出版社', 'address': '北京'}}
    
    print('name' in emp)
    print('price' in book)
    print(book['title'])  # 可以通过键名访问
    print(book['publisher']['address'])
    print(book.get('title'))  # 可以通过.get方法访问字典表
    print(book.get('Title'))  # 如果木有对应键,则返回None
    print(book.get('Title', '未找到'))  # 可以规定返回的值代替None
    print(book.keys())  # 可以用.keys方法返回所有的键
    keys = book.keys()
    print(type(keys))  # 得到的是一个视图
    keys = list(keys)
    print(type(keys))
    for key in book.keys():
        print(key)
    print(book.values())
    for V in book.values():
        print(V)
    values = list(book.values())
    print(values)
    print(type(values))
    print(book.items())  # .tiems得到所有的项,得到的是视图
    items = list(book.items())
    print(items)
    for (k, v) in book.items():
        print('{}-->{}'.format(k, v))
    print(len(book.keys()))
    print(len(book.values()))

     

    coures = {'title': 'python零基础入门精讲', 'lecturer': 'Eason', 'org': '腾讯课堂'}
    c = coures.copy()
    print(c)
    print(c.clear())
    coures['lecturer'] = 'Arthur.Wang'
    print(coures)
    c1 = {'price': 19.00}
    coures.update(c1)  # 用.update更新内容,增加/合并新的内容
    print(coures)
    del c1['price']
    print(c1)
    c = coures
    print(c.pop('price'))
    title = c.pop('title')
    print(title)
    print(c)
    print(c.pop('Org', '未找到'))
    print(c.popitem())
    print(c)
    
    
    def say_Hello():
        print("hello world")
    
    
    print(say_Hello())
    person = {'name': "Tom", "hello": say_Hello}
    print(person['name'])
    print(person.get('name'))
    print(person['hello'])
    print(person['hello']())
    print(person.get('hello')())
  • 相关阅读:
    Asp.NET 4.0 ajax实例DataView 模板编程1
    ASP.NET 4.0 Ajax 实例DataView模板编程 DEMO 下载
    部分东北话、北京话
    .NET 培训课程解析(一)
    ASP.NET 4.0 Ajax 实例DataView模板编程2
    ASP.NET Web Game 架构设计1服务器基本结构
    ASP.NET Web Game 构架设计2数据库设计
    TFS2008 基本安装
    Linux上Oracle 11g安装步骤图解
    plsql developer远程连接oracle数据库
  • 原文地址:https://www.cnblogs.com/jameskane/p/8450215.html
Copyright © 2011-2022 走看看