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

    字典是另一种可变容器模型,可存储任意类型的对象。

    字典的每个键值(key=>value)对用冒号分隔,每个对之间用逗号分隔,整个字典包括在花括号里,格式如下

    d = {key1 : value,key2 : value2}

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

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    一个简单字典实例:

    dict = {‘Alice’: ‘2341’,’Beth’ : ‘9102’,’Cecil’ : ‘3258’}

    创建字典:

    dict1 = {‘abc’ : 456}
    dict2 = {‘abc’ : 123, 98.6 : 37}

    访问字典的值

    把相应的键放到方括号中:

     

    修改字典:

    向字典添加新内容的方法是增加新的键/值对,修改或删除已有的键值:

     

    删除字典元素:

    能删单元的元素,也能清空字典,清空只需要一项操作。

    显示删除一个字典用del命令。

     

    字典键的 特性

    字典值可以是任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

    两个重要的点需要记住:

    1) 不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。

     

    2) 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。

     

    字典内置函数&方法

    1. len(dict):计算字典元素的个数,即键的总数。
    2. str(dict):输出字典,以可打印的字符串表示。
    3. type(variable):返回可输入的变量类型,如果变量是字典,就返回字典类型。

    Python字典包含了以下的内置方法

    函数

    描述

    radiansdict.clear()

    删除字典内所有元素

    radiansdict.copy()

    返回一个字典的浅复制

    radiansdict.fromkeys()

    创建一个字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

    radiansdict.get(key,default=None)

    返回指定键的值,如果值不存在字典值中就返回default值

    key in dict

    如果键在字典dict里返回true,否则返回false

    radiansdict.items()

    以列表返回可遍历的(键,值)元组数组

    radiansdict.keys()

    返回一个迭代器,可以使用list()来转换成列表

    radiansdict.setdefault(key,default=None)

    和get()相似,但如果键不存在与字典中, 将会添加键并将值设为default

    radiansdict.update(dict2)

    把字典dict2的键/值更新到dict中

    radiansdict.values()

    返回一个迭代器可以使用list()来转换成列表

    pop(key[default])

    删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出,否则,返回default值

    popitem()

    随机返回并删除字典中一对键和值(一般删除末尾对)

    字典的键值是“只读”的,所以不能对键和值分别进行初始化

    字典是支持无限嵌套的

    用字典记录学生姓名和分数,再分级

    /***
    student.py
    ***/
    students={}
    write = 1
    while write:
        name = str(input("please input name : "))
        grade = int(input("please input grade : "))
        students[str(name)] = grade
        write = int(input("please input ?
     1--continue  0--exit"))
    print('name rate'.center(20,'-'))
    for key,value in students.items():
        if value >= 90:
            print("%s %s A ".center(20,'-')%(key,value))
        elif 89 > value >= 60:
            print("%s %s B ".center(20,'-')%(key,value))
        else:
            print("%s %s C ".center(20,'-')%(key,value))

    运行结果:

    robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 key.py

    please input name : wang

    please input grade : 12

    please input ?

     1--continue  0--exit1

    please input name : qing

    please input grade : 67

    please input ?

     1--continue  0--exit1

    please input name : he

    please input grade : 98

    please input ?

     1--continue  0--exit0

    -----name rate------

    ------qing  67 B ------

    ------wang 12 C ------

    ------he 98 A ------

    字典可以通过以下方式调换key和value,注意原始value类型是不可变类型:

    /***
    reverse.py
    ***/
    dic = {
        'a':1,
        'b':2,
        'c':3,
    }
    reverse = {v:k for k,v in dic.items()}
    print(dic)
    print(reverse)

    运行结果:

    robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 rever.py

    {'a': 1, 'c': 3, 'b': 2}

    {1: 'a', 2: 'b', 3: 'c'}

    循环显示字典key和value值:

    /***
    show.py
    ***/
    b = {'a' : 'runoob','b':'google'}
    for i in b.values():
        print(i)
    for c in b.keys():
        print(c)

    运行结果:

    robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 loop.py

    runoob

    google

    a

    b

  • 相关阅读:
    UVA
    Codeforces 898F 字符串hash
    牛客练习赛11 B trie树+拓扑判环 E 分治求平面最近点对
    Codeforces Round #459 (Div. 2) C 思维,贪心 D 记忆化dp
    2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) D bfs思维 E bfs I Floyd找最小环 K 二分
    Educational Codeforces Round 37 E 补图求连通块 bfs+链表优化 F 线段树套路
    Codeforces 919E 数论,思维
    大数加法(主要是想记住模板)
    基础图论3
    简单并查集2hdu1213
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11401938.html
Copyright © 2011-2022 走看看