10. python字典

news2024/11/29 10:39:45

文章目录

  • 一、什么是字典
  • 二、访问键-值对
  • 三、添加、修改键-值对
  • 四、删除键-值对
      • 4.1 语句del
      • 4.2 方法pop()
  • 五、创建空字典
  • 六、遍历字典
      • 6.1方法items()
      • 6.2方法keys()
      • 6.3方法values()
  • 七、嵌套
      • 7.1 字典列表
      • 7.2 在字典中存储列表
      • 7.3 在字典中存储字典


一、什么是字典

#创建一个字典
alien_0 = {'color': 'red', 'points': 5}
  1. alien_0就是一个字典
  2. 字典定义使用大括号{}
  3. 字典大括号{}内部包含一系列的键-值对
  4. 键-值对之间,使用逗号分隔
  5. 键-值对内部,由冒号:分隔为两个部分:键:值
  6. 为描述部分,描述该键-值对代表的含义
  7. 为数值部分,描述部分对应的具体内容,可为:数字、字符串、列表、字典
  8. 为描述性短语,一般为字符串,部分有时也为字符串,每个字符串需要单独的引号

二、访问键-值对

#创建字典
alien_0 = {'color': 'red', 'points': 5}

#访问字典
print(alien_0['color'])
print(alien_0['points'])
  1. 访问字典数据,使用方括号[]
  2. 方括号[]内部,为的内容

三、添加、修改键-值对

#创建字典,因数据较长,分行写
favorite_languages = {
	'liming': 'c',	#注意此处不要遗漏逗号
	'xiaohua': 'python',
	}	#此处大括号,单独写一行,让大括号更加明显,起到方便阅读和防遗漏作用
#打印字典
print(favorite_languages)

#添加键-值对
favorite_languages['lihong'] = 'java'
#打印字典
print(favorite_languages)

#修改字典的内容
favorite_languages['lihong'] = 'ruby'
#打印字典
print(favorite_languages)

运行结果:
在这里插入图片描述
注意,我们添加和修改字典数据的时候,使用的代码如下:

#添加键-值对
favorite_languages['lihong'] = 'java'
#修改字典的内容
favorite_languages['lihong'] = 'ruby'
  1. 添加和修改字典内容,使用的代码格式是一样的
  2. 给字典里某个赋值的操作:
    2.1 若该已经存在,则赋值操作修改对应的
    2.2 若该不存在,则赋值操作在字典中添加键-值对

四、删除键-值对

4.1 语句del

alien_0 = {'color': 'red', 'points': 5}
print(alien_0)

#彻底删除points键值对
del alien_0['points']
print(alien_0)

语句del彻底删除了指定键-值对,没有返回。

4.2 方法pop()

alien_0 = {'color': 'red', 'points': 5}
print(alien_0)

#使用方法pop()弹出指定键-值对,返回`键`对应的`值`
delete = alien_0.pop('points')
print(delete)
print(alien_0)

方法pop()弹出键-值对,弹出就是删除,但此处会返回对应的

五、创建空字典

有时,我们需要用字典来保存用户输入的数据,或用字典来保存程序运行过程中产生的数据。这两种情况,都要先有一个空的字典,再往里面存放后续产生的数据。

#创建空字典
alien_0 = {}
print(alien_0)

#添加键-值对
alien_0['color'] = 'red'
alien_0['points'] = 5

print(alien_0)

运行结果:
在这里插入图片描述

六、遍历字典

6.1方法items()

返回字典中的键-值对

#创建字典
user_0 = {
	'username': 'xiaoming',
	'first': 'li',
	'last': 'ming',
	}

#使用for循环,打印所有键-值对
for key, value in user_0.items():
	print('key: ', key, '\t\tvalue: ', value)

运行结果:
在这里插入图片描述

  1. user_0.items()返回字典中的一个键-值对,将返回给变量key,将返回给变量value
  2. 使用for循环遍历字典,便可以访问字典中所有键-值对

6.2方法keys()

返回字典中的

user_0 = {
	'username': 'xiaoming',
	'first': 'li',
	'last': 'ming',
	}

#遍历所有的键
for key in user_0.keys():
	print(key)

运行结果:
在这里插入图片描述

  1. user_0.keys()只会返回字典中的一个
  2. 使用for循环,便可遍历字典中所有

6.3方法values()

返回字典中的

user_0 = {
	'username': 'xiaoming',
	'first': 'li',
	'last': 'ming',
	}

#遍历所有的键
for value in user_0.values():
	print(value)

运行结果:
在这里插入图片描述

  1. user_0.values()返回字典中的一个
  2. 使用for循环,便可以遍历字典中所有

七、嵌套

7.1 字典列表

#创建三个字典
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}

#将三个字典存入列表中,该列表称为:字典列表
aliens = [alien_0, alien_1, alien_2]

#遍历列表
for alien in aliens:
	print(alien)

运行结果:
在这里插入图片描述

  1. 列表中可存放任意类型数据,当然也可以将字典存入列表
  2. 字典列表:(只含有)字典(的)列表

7.2 在字典中存储列表

有时,一个的后面,对应着多个
比如:描述pizza的配料时,因配料不仅一种,故需要使用列表。

#创建披萨的内外用料字典
pizza = {
	'crust': 'thick',
	#因配料较多,需使用列表存放
	'toppings': ['mushrooms', 'extra cheese'],
	}

#描述披萨
print('you ordered a ' + pizza['crust'] + '-crust pizza, with the following toppings:')

#遍历配料列表
for topping in pizza['toppings']:
	print('\t' + topping)

运行结果:
在这里插入图片描述

7.3 在字典中存储字典

有时,键-值对中的中包含信息较多、教复杂,需要使用新的键-值对来描述。

#创建字典,键-值对为:用户名:用户信息
#用户信息:包含数据较多,信息分为三个键-值对,采用字典来组织信息
users = {
	'xiaoming': {
		'first': 'li',
		'last': 'ming',
		'location': 'kunming',
		},
	'lili': {
		'first': 'li',
		'last': 'li',
		'location': 'dali',
		},
	}

#使用for循环,遍历用户信息
for username, user_info in users.items():
	#打印用户名
	print('username: ', username)
	#从用户信息中,获取用户的姓和名,拼接为全名
	full_name = user_info['first'] + user_info['last']
	#从用户信息中,获取用户居住地
	location = user_info['location']

	#打印用户完整信息
	print('\tFull_name: ', full_name)
	print('\tLocation: ', location)

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/576413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

canal server 标准化集群搭建(一)

1.背景 随这业务增加,数据同步服务 canal server 需求与日俱增,以往私搭乱建的 canal server 不符合运维标准化。 2.目的 规范 canal server 的部署,形成固定操作流程及文档 3. 环境版本 canal server: canal.deployer-1.1.…

电装光庭汽车电子(武汉)有限公司

电装光庭汽车电子(武汉)有限公司 (汽车座舱显示系统,汽车电子产品及其材料和组件的开发,设计,制造,销售,批发,进出口) 一、公司介绍 电装光庭汽车电子是一…

Android中使用kotlin进行xutils数据库版本升级

Android中使用kotlin进行xutils数据库版本升级 前言 最近的项目是一个很老的项目,数据库采用的是xutils中的数据库,之前的业务没有关于版本变更和数据库修改的业务,这次新需求数据库需要新加一张表,之前的表也需要修改字段&…

2022机器学习阶段性复盘

2022机器学习阶段性复盘 文章目录 2022机器学习阶段性复盘一、业务洞察1.1 业务调研1.2 采样策略 一、特征工程1.1 特征筛选之iv_psi1.2 特征筛选之启发式搜索1.3 时间特征的曲率变换1.4 多重共线性特征的剔除1.5 什么样的特征适合树模型或LR模型1.5 什么样的特征是稳定可泛化特…

cuda编程学习——GPU加速/时间计时Clock 干货向(五)

前言 参考资料: 高升博客 《CUDA C编程权威指南》 以及 CUDA官方文档 CUDA编程:基础与实践 樊哲勇 文章所有代码可在我的GitHub获得,后续会慢慢更新 文章、讲解视频同步更新公众《AI知识物语》,B站:出门吃三碗饭 …

路径规划算法:基于花授粉优化的路径规划算法- 附代码

路径规划算法:基于花授粉优化的路径规划算法- 附代码 文章目录 路径规划算法:基于花授粉优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

面试官:这么简单的二叉树算法都不会?

今天我们来看一个有趣的算法题,也是一道高频面试题。这个题目是leetcode的第572题,要求是这样的:给定两颗二叉树A和B,判断B是否是A的子树。在下面这个例子中可以看到B是A的子树。 想一想该怎样解决这个问题呢?如果B是A…

Python丨tkinter开发常用的29种功能用法(建议码住)

在Python软件开发中,tkinter中command功能的作用是为按钮、菜单等组件绑定回调函数,用户操作该组件时会触发相应的函数执行。 本文涵盖了各种组件和功能: 1、为Button组件(按钮)绑定回调函数 import tkinter as tk …

模拟量偏差报警功能块(SCL代码)

工业模拟量采集的相关基础知识,可以查看专栏的系列文章,这里不再赘述,常用链接如下: PLC模拟量采集算法数学基础(线性传感器)_plc傳感器數據轉化_RXXW_Dor的博客-CSDN博客模拟量采集库如何设计,具体算法代码请参看我的另一篇博文:PLC模拟量输入 模拟量转换FC:S_ITR_R…

栈和队列(详解)

🍕博客主页:️自信不孤单 🍬文章专栏:数据结构与算法 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏关注 文章目录 🍓栈1. 栈的概念及结构2. 栈的实现2.1 初始化栈2.…

MySQL运维篇(三)

五.读写分离 5.1 介绍 读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。 通过MyCat即可轻易实现上述功能,不仅可以支持MySQL&#x…

【论文总结】Composition Kills: A Case Study of Email Sender Authentication

构成杀伤力: 电子邮件发送者认证的案例研究 摘要 基于组件的软件设计是构建现代软件系统的一种主要工程方法。然而,由于不同组件之间对信息的解释可能不一致,这种编程范式产生了安全问题。在本文中,我们利用这种不一致来识别电子…

双列集合 JAVA

双列集合 一次需要添加一对数据,分别为键和值键不可以重复,值可以重复键和值是一一对应的,每一个键只可以找到自己对应的值键值对在java中也叫做Entry对象 #mermaid-svg-zKLj0vUbRaN9zlse {font-family:"trebuchet ms",verdana,ar…

SpringBoot2-基础入门(二)

SpringBoot2 - 基础入门(二) 了解自动装配原理 文章目录 SpringBoot2 - 基础入门(二)了解自动装配原理一、依赖管理1.1 父项目做依赖管理1.2 starer场景启动器 2、自动配置2.1 自动配置依赖2.2 组件扫描 3、配置文件3.1 各种配置…

【软件测试知识】

目录 软件测试软件测试模型瀑布模型V 模型W 模型敏捷开发模型 软件开发流程软件测试方法白盒测试黑盒测试 软件测试 软件测试模型 说到开发模型,从软件发展来看,比较典型的有瀑布模型,V 模型和 W 模型以及 敏捷开发模型。并不是说开发模型的…

【论坛java项目】第二章 Spring Boot实践,开发社区登录模块:发送邮件、开发注册功能、会话管理、生成验证码、开发登录、退出功能、

😀如果对你有帮助的话😊 🌺为博主点个赞吧 👍 👍点赞是对博主最大的鼓励😋 💓爱心发射~💓 目录 一、发送邮件1、启用客户端SMTP服务2、导入jar包3、邮箱参数配置MailClientdemo.html…

第13届蓝桥杯Scratch省赛真题集锦

编程题 第 1 题 问答题 报数游戏 题目说明 背景信息: 5个男生和3个女生,8个人围成一个圆圈,给定一个数字n (2 小于等于n 小于等于5)。从第一个开始依次报数,当报数为n时,这个人离开圆圈。然后下一个从1开始报数,再次报…

MySQL---使用索引优化、大批量插入数据优化

1. 使用索引优化 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL 的性能优化问题: create table tb_seller (sellerid varchar (100),name varchar (100),nickname varchar (50),password varchar (60),status varchar…

高级Java多线程面试题及回答

高级Java多线程面试题及回答 1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可…

网络安全的红利还能吃几年?

在我看来这是一个伪命题,因为网络安全的核心和本质是持续对抗,只要威胁持续存在,网络安全的红利就会持续存在! 对于网络安全新入行的同学们来说,这是一个最坏的时代,因为你只能自己搭环境才能重现那些大牛们…