字典
字典是通过{}来表示的,每一条数据都是一个键值对(key:value),每个元素之间使用逗号隔开,字典的键在同一个字典中是唯一的(不能重复)
字典中的键:只能是不可变类型的数据,一般情况下都是使用字符串来作为字典的键(可以用数字,字符串或元组充当)
字典中的值:可以取任何数据类型
不可变类型的数据:数值(int,float,bool),字符串、元组
可变类型的:列表、字典、集合(有增删查改的方法)
创建一个字典:
# 第一种:直接通过{}
dic = {"name": "msuen", "age": 18, 'gender': "男"}
print(dic)
# 第二种:使用内置函数dict(了解)
dic2 = dict([('name', 'msuen'), ('age', 18), ('gender', '男')])
print(dic2)
# 第三种:内置函数dict
dic3 = dict(name="musen",
age=18,
gender="男")
print(dic3)
访问字典中的值
dic = {"age": 18, "gender": "男","name": "python"} res = dic["name"] print(res)
print("dic['age']:",dic['age'])
修改字典中的值
dic = {"age": 18, "gender": "男","name": "python"} dic['age']= 19 print("dic['age']:",dic['age'])
删除字典元素del方法
dic = {"age": 18, "gender": "男","name": "python"} del dic['age'] #删除键 print(dic) dic.clear() #清空字典 print(dic) del dic #整个删除后,后面输出会报异常 print(dic)
内置函数:
序号 | 函数及描述 | 实例 |
---|---|---|
1 | len(dict) 计算字典元素个数,即键的总数。 |
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> len(dict) 3 |
2 | str(dict) 输出字典,可以打印的字符串表示。 |
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> str(dict) "{'Name': 'python', 'Class': 'First', 'Age': 18}" |
3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 |
>>> dict = {'Name': 'python', 'Age': 18, 'Class': 'First'} >>> type(dict) <class 'dict'> |
内置方法:
序号 | 函数及描述 |
---|---|
1 | radiansdict.clear() 删除字典内所有元素 |
2 | radiansdict.copy() 返回一个字典的浅复制 |
3 | radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | radiansdict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | radiansdict.items() 以列表返回一个视图dict_items对象 |
7 | radiansdict.keys() 以列表返回一个视图dict_keys对象 |
8 | radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | radiansdict.values() 返回一个视图对象 |
11 | pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | popitem() 随机返回并删除字典中的最后一对键和值。 |
补充:
1.字典的嵌套,字典是可以无限进行嵌套的
cities={ '北京':{ '朝阳':['国贸','CBD','天阶','我爱我家','链接地产'], '海淀':['圆明园','苏州街','中关村','北京大学'], '昌平':['沙河','南口','小汤山',], '怀柔':['桃花','梅花','大山'], '密云':['密云A','密云B','密云C'] }, '河北':{ '石家庄':['石家庄A','石家庄B','石家庄C','石家庄D','石家庄E'], '张家口':['张家口A','张家口B','张家口C'], '承德':['承德A','承德B','承德C','承德D'] } } for i in cities: print(i) print("*******************") for i in cities['北京']: print(i) print("******************") for i in cities['北京']['昌平']: print(i)
字典的运用:
例子:记录学生的姓名和分数,并评级
students = {} write = 1 while write: name = str(input("请输入姓名:")) grade = int(input("请输入分数:")) students[str(name)] = grade write = int(input("继续输入?\n 1/继续 0/退出")) print("name rate".center(20,'*')) for key,value in students.items(): if value >= 90: print("%s %s A".center(20,'*')%(key,value)) elif 90 >value>60: print("%s %s B".center(20,'*')%(key,value)) else: print("%s %s C".center(20,'*')%(key,value))
字典列表(在列表中嵌套字典)
dict_0 = {'color': 'green', 'points': 5} dict_1 = {'color': 'yellow', 'points': 10} dict_2 = {'color': 'red', 'points': 15} lists = [dict_0, dict_1, dict_2] for dict in lists: print(dict)