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')())
  • 相关阅读:
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    预习非数值数据的编码方式
    计算机组成与系统结构作业01
    C语言||作业01
  • 原文地址:https://www.cnblogs.com/jameskane/p/8450215.html
Copyright © 2011-2022 走看看