码迷,mamicode.com
首页 > 编程语言 > 详细

Python3字典

时间:2019-08-23 19:23:46      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:print   pytho   update   nts   重要   指定   支持   结果   更新   

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

字典的每个键值(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 ?\n 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

 

Python3字典

标签:print   pytho   update   nts   重要   指定   支持   结果   更新   

原文地址:https://www.cnblogs.com/wanghao-boke/p/11401938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!