首页 > 编程语言 >XX学Python·字典

XX学Python·字典

时间:2022-10-04 23:01:17浏览次数:53  
标签:dict1 name Python gender age XX print 字典

字典

  • 以键值对形式存储,方便快速存取,字典的键要见名知意。字典占用空间远大于列表,牺牲空间利用快速存取的特性。

  • 字典是无序的,因为不能通过索引进行键值对获取。Python3.5以后,字典中键值对顺序和我们插入顺序一致,但该顺序没法被利用。

  • 字典定义格式:变量={键1:值1, 键2:值2...},空字典dict2 = {},或dict()方法定义。字典的键必须是不可变类型。数字、字符串、元组是不可变的。

dict1 = {'name': 'xiaoming', 'age': 18, 'gender': '女'}
dict2 = {}
print(dict1)
print(dict2)

# 字典中键是唯一的,不能有重复的键,否则后定义的键值会覆盖前面的。值可以重复。
dict3 =  {'name': 'xiaoming', 'age': 18, 'id': 18, 'name': 'rose'}
print(dict3)  # {'name': 'rose', 'age': 18, 'id': 18}前面xiaoming被换成rose

字典的'增'和’改‘

# 字典变量[key] = value
dict1 = {'name':'xx', 'age':18}
dict1['gender'] = '男'  # 若原字典不存在该key,则新增
print(dict1)  # {'name': 'xx', 'age': 18, 'gender': '男'}
dict1['name'] = 'lsl'  # 若原字典存在该key,则修改原key所对应的值
print(dict1)  # {'name': 'lsl', 'age': 18, 'gender': '男'}

# update方法格式:update({key:值})或update(key=值)
dict1.update({'id': '001'})  # 没有key则新增
print(dict1)  # {'name': 'lsl', 'age': 18, 'gender': '男', 'id': '001'}
dict1.update({'name': 'rose'})  # 有key则修改
print(dict1)  # {'name': 'rose', 'age': 18, 'gender': '男', 'id': '001'}
dict1.update(name='mx')  # 不用{}的形式:update(key=值)
print(dict1)  # {'name': 'mx', 'age': 18, 'gender': '男', 'id': '001'}

# update一般用于两个字典拼接,格式:字典1.update(字典2)
dict2 = {'w': 45, 'h': 170}
dict1.update(dict2)
print(dict1)
# {'name': 'mx', 'age': 18, 'gender': '男', 'id': '001', 'w': 45, 'h': 170}

字典的‘删‘

dict1 = {'name': 'xx', 'age': 18, 'gender': '男'}
# 格式:del 字典[key],根据键进行键值对的删除
del dict1['gender']
print(dict1)  # {'name': 'xx', 'age': 18}

# clear()方法清空字典
dict1.clear()
print(dict1)  # {}

# 字典.pop(key),删除指定键的键值对,会返回要删除的键对应的值。
dict2 = {'name': 'xx', 'age': 18, 'gender': '男'}
print(dict2.pop('gender'))  # 男
print(dict2)  # {'name': 'xx', 'age': 18}

# popitem(),随机删除一对,尝试后发现总是删除最后一对,以元组的形式返回删除的键值对。
dict3 = {'name': 'xx', 'age': 18, 'gender': '男'}
print(dict3.popitem())  # ('gender', '男')
print(dict3.popitem())  # ('age', 18)
print(dict3)  # {'name': 'xx'}

字典的’查‘

dict1 = {'name':'xx', 'age':18}
# 查询方式一:dict[key],查询的key不存在会报错
print(dict1['name'])  # xx
# print(dict1['gender'])  # KeyError: 'gender'

# 查询方式二:dict.get(key,查询key不存在时返回的内容),key不存在时默认返回None
print(dict1.get('name'))  # xx
print(dict1.get('gender'))  # None
print(dict1.get('gender', '不存在此键'))  # 不存在此键

# keys 获取当前字典所有的键
print(dict1.keys())  # dict_keys(['name', 'age'])
print(type(dict1.keys()))  # <class 'dict_keys'>
# keys返回的内容是dict_keys类型,不能直接用索引查询,但可以进行for遍历
keys_1 = dict1.keys()
# print(keys_1[1])  # TypeError: 'dict_keys' object is not subscriptable
for i in keys_1:  # 可以被迭代
    print(i)  # name 换行后 age

# values 获取当前字典所有的值
print(dict1.values())  # dict_values(['xx', 18]),可以进行for遍历
print(type(dict1.values()))  # <class 'dict_values'>

# items 获取当前字典所有的键值对
print(dict1.items())  # dict_items([('name', 'xx'), ('age', 18)])
print(type(dict1.items()))  # <class 'dict_items'>,可以进行for遍历

字典的遍历

dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 使用for循环对字典进行遍历,默认获取字典的每一个键
for i in dict1:
    print(i)  # name 换行后 age 换行后 gender

for i in dict1.keys():
    print(i)  # 同上获取每一个键

for i in dict1.values():
    print(i)  # 获取的是每一个值

for i in dict1.items():
    print(i)  # 获取字典每一对键值对组成的元组,结果如下
'''
('name', 'Tom')
('age', 20)
('gender', 'male')
'''

# 分别拿到字典的键和值
for i in dict1:
    print(i, dict1[i])

for key,value in dict1.items():
    print(key, value)
'''两个结果都如下
name Tom
age 20
gender mal
'''

标签:dict1,name,Python,gender,age,XX,print,字典
From: https://www.cnblogs.com/portb/p/16754750.html

相关文章

  • 基于python的校园用车管理系统设计与实现-计算机毕业设计源码+LW文档
    开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:PyCharm 浏览器:谷歌浏览器数据库:DROPTABLEIFEXISTS......
  • XX学Python·元组
    元组可以储存多个数据,元组里的数据不能被修改(元组定义后只能被查询)元组定义:变量=(数据1,数据2,数据3......);单元素也要有逗号,变量=(数据,)。元组定义时,小括号可省略......
  • XX学Python·集合
    集合集合是一个无序,不重复的数据序列。无序:程序员无法控制其排布顺序,无法使用索引查找或修改数据不重复:没法在集合里放入相同的值,会自动去重,类似于字典的键定......
  • XX学Python·总结和推导式
    公共方法总结+:有{}的都不行,即字典,集合适用所有基础数据类型(intfloatbool),容器类型只有列表,元组,字符串两侧要是同种数据类型加法运算在容器类型中是拼接的意......
  • XX学Python·概述
    Python概述创始人:吉多·范罗苏姆龟叔为什么要学习Python:大势所趋,简单易学,使用范围广我们本次学习使用Python3.x版本Python在大数据生态中应用非常广泛Python解释器......
  • XX学Python·字符串的格式化及输出
    字符串的格式化及输出格式化是字符串所具有的功能与print无关,哪怕不进行输出,也可进行字符串的格式化格式:单占位符:'要书写的内容占位符'%变量名多占位符:'要......
  • XX学Python·运算符的使用
    算数运算符加减乘除//取商%取余(取模)**幂次运算()小括号用来提高运算优先级float1=10.2int1=4int2=11#数值型数据(float,int,bool)间可以进行算数运算#......
  • python中类与对象的命名空间(静态属性的陷阱)、__dict__ 和 dir() 在继承中使用说明
    1.面向对象的概念1)类是一类抽象的事物,对象是一个具体的事物;用类创建对象的过程,称为实例化。2)类就是一个模子,只知道在这个模子里有什么属性、什么方法,但是不知道......
  • python 爬虫(正则)
    ......
  • python基础小知识【基础+进阶】
    ......