Python每日笔记05(字典Dictionary)

2024-04-20 15:38

本文主要是介绍Python每日笔记05(字典Dictionary),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本次主要内容:字典dictionary

>> Python每日笔记—目录 <<

字典-dictionary

字典是另一种可变容器模型,且可以存储任意类型对象。
字典中的每个键值对key--value 中间用:分割,每个元素之间用逗号隔开
整个字典用{}表示
  1. 创建一个空字典
dict1 = {}
dict1 = dict()
print(type(dict1))
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1['name'])    # Tom
print(len(dict1))       # 3
'尝试获取不存在的key,会报异常'  # print(dict1['test'])
  1. 字典的创建方法fromkeys()
'''创建字典
fromkeys()用于创建一个新字典,以序列sql中元素做字典的键
value为字典中所有键对应的初始值
fromkeys(seq,value)seq:字典键值列表value:可选参数,设置seq对应的值,默认为none该方法返回一个新字典
'''
seq = ('name', 'age', 'sex')
dict1 = dict.fromkeys(seq, 10)
print("新的字典为:%s" % str(dict1))
# 新的字典为:{'sex': 10, 'name': 10, 'age': 10}
  1. 字典键值对的 增-删-改-查 操作
    添加:直接设置key-value
    修改:直接修改赋值
    删除:使用del操作符
    查找:1-下标索引,2-内置get方法
# 直接设置键值对,可以添加字典数据
dict1 = dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
dict1['height'] = 180
print(dict1) 
# dict1 = {'name': 'Tom', 'age': 20, 'gender': '男', }
'''dict1.update(dict2):把字典dict2添加到dict1中,该方法没有任何返回值重复的key会进行更新,没有key则会添加新的key-value
'''
dict1 = {'sex': 10, 'name': 10, 'age': 10}
print(dict1)	# {'sex': 10, 'name': 10, 'age': 10}
dict2 = {'sex': '男', 'height': 170, 'hobby': 'ping_pang'}
dict1.update(dict2) 
# {'height': 170, 'sex': '男', 'hobby': 'ping_pang', 'name': 10, 'age': 10}'''popitem() 返回第一个key-value,并从字典中移除使用del 删除
'''
print(dict1)
del dict1['height']
print(dict1)dict1 = {'name': 10, 'height': 170, 'sex': '男', 'age': 10, 'hobby': 'ping_pang'}
num = dict1.popitem()
print(num)      # ('name', 10)
print(dict1)    # {'age': 10, 'hobby': 'ping_pang', 'height': 170, 'sex': '男'}'''查找
1.索引查找
2.内置函数get查找
'''
print(dict1['name'])
print(dict1.get('name'))
  1. keys()查找字典中的所有的key,返回一个可迭代的对象
    values(): 查找字典当中所有的value,返回一个可迭代的对象
    items(): 查找字典中所有的键值对,返回可迭代的喜爱那个,里面的数据是元组
'''keys()查找字典中的所有的key,返回一个可迭代的对象'''
print(dict1.keys())	# dict_keys(['gender', 'name', 'age'])
print(len(dict1.keys()))
for i in dict1.keys():print(dict1[i])	# 男 Tom 20
'''values(): 查找字典当中所有的value,返回一个可迭代的对象'''
print(dict1.values()) # dict_values(['男', 'Tom', 20])
'''items(): 查找字典中所有的键值对,返回可迭代的喜爱那个,里面的数据是元组'''
print(dict1.items)
dict2 = {'L': [[0, 0], [0, 1], [0, 2], [1, 2]]}
print(dict2) # {'L': [[0, 0], [0, 1], [0, 2], [1, 2]]}
  1. 字典的深复制= 和 浅复制copy()
    可以类比元组和列表
dict1 = {'name': 'Tom', 'num': [1,2,3]}
dict2 = dict1
print(id(dict1) == id(dict2))	# True
dict3 = dict1.copy()
print(id(dict3) == id(dict1))	# False

课堂练习一、名片管理系统(字典版)

要求和前面列表版的一样,更换一下数据结构,这里直接给出代码

info = {'name': 'Jack', 'age': '21', 'height': 173}
while True:print('*' * 60)print('====================欢迎进入名片管理系统====================')print('1-修改名片')print('2-删除名片')print('3-查看名片')print('4-添加名片')print('5-退出系统')choice = int(input("请选择:"))  # input输入的是字符串if choice == 1:key = input("请输入要修改的关键词:")if key == 'name':info['name'] = input("请输入需要修改的姓名")print(info)elif key == 'age':info['age'] = int(input("请输入需要修改的年龄"))print(info)elif key == 'height':info['height'] = int(input("请输入需要修改的身高"))print(info)else:print("关键词错误")elif choice == 2:key = input("请输入要删除的关键字")print(info.pop(key))elif choice == 3:key = input("请输入要查看的关键字")print(info.get(key))elif choice == 4:key = input("请输入增加的内容:")value = input("请输入value:")print(info.update({}.fromkeys((key,), value)))print(info)elif choice == 5:print("退出")breakelse:print("输入有误")

课堂练习二、俄罗斯方块

主要使用循环+字典+列表实现
每次输入代表形状的大写字母—输出对应*组成的图案
代码如下:

Tetris = {'L': [[1, 1], [1, 2], [1, 3], [2, 3]],'O': [[1, 1], [2, 1], [1, 2], [2, 2]],'J': [[2, 1], [2, 2], [1, 3], [2, 3]],'Z': [[1, 1], [2, 1], [2, 2], [3, 2]],'S': [[1, 1], [1, 2], [2, 2], [2, 3]],'I': [[1, 1], [1, 2], [1, 3], [1, 4]],'T': [[1, 1], [2, 1], [2, 2], [3, 1]]}
print(Tetris)while True:figure = input("请输入俄罗斯方块的形状")flag = 0for i in range(0, 5):for j in range(0, 4):for li in range(0, len(Tetris[figure])):    # Tetris['L']if j == Tetris[figure][li][0] and i == Tetris[figure][li][1]:flag = 1if flag == 1:print("*", end='')else:print(" ", end='')flag = 0print()

**如果这篇文章对你有帮助,点个赞呗**

这篇关于Python每日笔记05(字典Dictionary)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/920653

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON: