python教学入门:字典和集合

在这里插入图片描述

字典(Dictionary):

在这里插入图片描述

定义:

  • 字典是 Python 中的一种数据结构,用于存储键值对(key-value pairs)。
  • 字典使用花括号 {} 定义,键值对之间用冒号 : 分隔,每对键值对之间用逗号 , 分隔。

特点:

  • 字典中的键必须是不可变的(immutable),通常使用字符串或整数作为键。
  • 字典中的值可以是任意类型的,包括其他字典或集合。

常用操作:

  • 访问元素:可以通过键来访问字典中的值。
  • 修改元素:可以通过键来修改字典中的值。
  • 添加元素:可以使用新的键值对来添加元素到字典中。
  • 删除元素:可以使用 del 关键字或者 pop() 方法删除字典中的元素。
    在这里插入图片描述
    使用关键字参数创建字典:可以通过传递关键字参数来创建一个包含指定键值对的字典。
my_dict = dict(name="Alice", age=30, city="New York")
print(my_dict)  # 输出:{'name': 'Alice', 'age': 30, 'city': 'New York'}

示例:
定义和访问元素:

# 定义一个字典
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 访问字典中的元素
print(my_dict['name'])  # 输出:Alice
print(my_dict['age'])   # 输出:30
print(my_dict['city'])  # 输出:New York

修改元素:
在这里插入图片描述

my_dict = {'name': 'Alice', 'age': 30}
other_dict = {'city': 'New York', 'age': 35}

my_dict.update(other_dict)
print(my_dict)  # 输出:{'name': 'Alice', 'age': 35, 'city': 'New York'}

# 修改字典中的元素
my_dict['age'] = 35
print(my_dict['age'])  # 输出:35

添加元素:

# 添加新的键值对到字典中
my_dict['gender'] = 'Female'
print(my_dict)  # 输出:{'name': 'Alice', 'age': 35, 'city': 'New York', 'gender': 'Female'}

删除元素:
在这里插入图片描述
pop() 方法用于删除字典中指定键的键值对,并返回该键对应的值。如果指定的键不存在,则可以通过可选的 default 参数指定一个默认值,如果键不存在且没有指定默认值,则会引发 KeyError 错误。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 删除键为 'age' 的键值对,并返回对应的值
age = my_dict.pop('age')
print(age)  # 输出:30
print(my_dict)  # 输出:{'name': 'Alice', 'city': 'New York'}

# 删除不存在的键,并指定默认值
salary = my_dict.pop('salary', 0)
print(salary)  # 输出:0

在这里插入图片描述
popitem() 方法用于随机删除并返回字典中的一个键值对(通常是最后一个键值对)。如果字典为空,则会引发 KeyError 错误。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 随机删除并返回一个键值对
item = my_dict.popitem()
print(item)  # 输出:('city', 'New York')
print(my_dict)  # 输出:{'name': 'Alice', 'age': 30}

在这里插入图片描述
clear() 方法用于删除字典中的所有键值对,即清空字典,但字典对象仍然存在。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 清空字典
my_dict.clear()
print(my_dict)  # 输出:{}

# 删除字典中的元素
del my_dict['city']
print(my_dict)  # 输出:{'name': 'Alice', 'age': 35, 'gender': 'Female'}

items() 方法
在 Python 中,items() 方法用于返回字典中所有键值对的视图,返回的视图是一个包含键值对的可迭代对象。每个键值对都表示为一个元组,其中第一个元素是键,第二个元素是对应的值。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 获取字典中所有键值对的视图
items = my_dict.items()
print(items)  # 输出:dict_items([('name', 'Alice'), ('age', 30), ('city', 'New York')])

# 遍历键值对视图
for key, value in items:
    print(f"Key: {key}, Value: {value}")

集合(Set):

在这里插入图片描述

定义:

  • 集合是 Python 中的一种数据结构,用于存储无序且唯一的元素。
  • 集合使用花括号 {} 定义,元素之间用逗号 , 分隔。

特点:

  • 集合中的元素必须是不可变的(immutable),通常使用整数、字符串等不可变类型作为元素。
  • 集合中的元素是唯一的,重复的元素会被自动去重。

常用操作:

  • 添加元素:可以使用 add() 方法向集合中添加新元素。
  • 删除元素:可以使用 remove() 方法删除集合中的元素。
  • 集合运算:支持交集、并集、差集等集合运算。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

示例:
定义和添加元素:

# 定义一个集合
my_set = {1, 2, 3, 'a', 'b', 'c'}

# 添加元素到集合中
my_set.add(4)
print(my_set)  # 输出:{1, 2, 3, 4, 'a', 'b', 'c'}

删除元素:

# 从集合中删除元素
my_set.remove('a')
print(my_set)  # 输出:{1, 2, 3, 4, 'b', 'c'}

集合运算:

# 定义两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 求交集
intersection = set1.intersection(set2)
print(intersection)  # 输出:{4, 5}

# 求并集
union = set1.union(set2)
print(union)  # 输出:{1, 2, 3, 4, 5, 6, 7, 8}

# 求差集
difference = set1.difference(set2)
print(difference)  # 输出:{1, 2, 3}

set() 函数:
在这里插入图片描述
set() 函数用于创建一个可变的集合,它接受一个可迭代对象作为参数,并将其中的元素添加到集合中。如果不传递任何参数给 set() 函数,则会创建一个空集合。

# 创建一个包含多个元素的集合
my_set = set([1, 2, 3, 4, 5])
print(my_set)  # 输出:{1, 2, 3, 4, 5}

# 创建一个空集合
empty_set = set()
print(empty_set)  # 输出:set()

frozenset() 函数:
frozenset() 函数用于创建一个不可变的集合,它接受一个可迭代对象作为参数,并将其中的元素添加到集合中。不可变集合与普通集合的区别在于,不可变集合的内容在创建后不能被修改,也不能添加或删除元素。

# 创建一个包含多个元素的不可变集合
my_frozenset = frozenset([1, 2, 3, 4, 5])
print(my_frozenset)  # 输出:frozenset({1, 2, 3, 4, 5})

& 操作符(交集):
在这里插入图片描述
& 操作符用于计算两个集合的交集,即返回同时存在于两个集合中的元素组成的新集合。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

intersection_set = set1 & set2
print(intersection_set)  # 输出:{4, 5}

【- 】操作符(差集):
在这里插入图片描述

【- 】操作符用于计算两个集合的差集,即返回存在于第一个集合但不存在于第二个集合中的元素组成的新集合。

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

difference_set = set1 - set2
print(difference_set)  # 输出:{1, 2, 3}

^ 操作符(对称差):
^ 操作符用于计算两个集合的对称差,即返回存在于任一集合但不同时存在于两个集合中的元素组成的新集合。
在这里插入图片描述

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set)  # 输出:{1, 2, 3, 6, 7, 8}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL-Oracle 获取最大值,第二大,第三大,第 N 大值

目录 1、原始数据2、获取最大值记录3、获取第二大值记录4、获取第三大值记录 1、原始数据 select * from test_2024_04_15_001 order by 销量 desc,渠道2、获取最大值记录 select 渠道,销量 from ( select a.渠道, a.销量 from test_2024_04_15_001 a order by a.销量 desc,…

AI边坡监测识别摄像机

AI边坡监测识别摄像机是一种利用人工智能技术进行边坡监测的智能设备,其作用是及时监测边坡变化并识别潜在的滑坡、崩塌等危险情况,以提供及时预警和采取必要的安全措施。这种摄像机通过高清摄像头实时捕捉边坡的图像,并利用AI算法对边坡的形…

实验室三大常用仪器2---函数信号发生器的基本使用方法(笔记)

目录 函数信号发生器的基本使用方法 如何连接函数信号发生器和示波器 实验室三大常用仪器1---示波器的基本使用方法(笔记)-CSDN博客 实验室三大常用仪器3---交流毫伏表的使用方法(笔记)-CSDN博客 示波器是用来显示和测量信号的…

Java | Leetcode Java题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; class Solution {public int searchInsert(int[] nums, int target) {int n nums.length;int left 0, right n - 1, ans n;while (left < right) {int mid ((right - left) >> 1) left;if (target < nums[mid]) {ans mi…

阿里云图片处理之 图片样式(裁剪)

文档 : https://help.aliyun.com/zh/oss/user-guide/image-styles?spma2c4g.11186623.0.0.5961fe7aq3111v 需求 : 由于客户端界面展示的图片较多, 而且每个图片都过大并且高清高分辨率的, 导致打开页面时图片加载很慢, 而且是缩略图, 对图片清晰度要求不是那么得高, 因此可以…

ASP.NET MVC企业级程序设计 (商品管理:小计,总计,删除,排序)

目录 效果图 实现过程 1创建数据库 2创建项目文件 3创建控制器&#xff0c;右键添加&#xff0c;控制器 ​编辑 注意这里要写Home​编辑 创建成功 数据模型创建过程之前作品有具体过程​编辑 4创建DAL 5创建BLL 6创建视图&#xff0c;右键添加视图 ​编辑 7HomeCont…

【问题处理】银河麒麟操作系统实例分享,adb读写缓慢问题分析

1.问题环境 处理器&#xff1a; HUAWEI Kunpeng 920 5251K 内存&#xff1a; 512 GiB 整机类型/架构&#xff1a; TaiShan 200K (Model 2280K) BIOS版本&#xff1a; Byosoft Corp. 1.81.K 内核版本 4.19.90-23.15.v2101.ky10.aarch64 第三方应用 数据库 2.问题…

Spring Security详细学习第一篇

Spring Security 前言Spring Security入门编辑Spring Security底层原理UserDetailsService接口PasswordEncoder接口 认证登录校验密码加密存储退出登录 前言 本文是作者学习三更老师的Spring Security课程所记录的学习心得和笔记知识&#xff0c;希望能帮助到大家 Spring Sec…

buuctf——[ZJCTF 2019]NiZhuanSiWei

buuctf——[ZJCTF 2019]NiZhuanSiWei 1.绕过file_get_contents()函数 file_get_contents函数介绍 定义和用法 file_get_contents() 把整个文件读入一个字符串中。 该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持&#xff0c;还会使用内存映射…

python实现将数据标准化到指定区间[a,b]+正向标准化+负向标准化

目录 一、公式介绍 (一)正向标准化公式 (二)负向标准化公式如下 (三)[a,b]取[0,1]的特例 二、构建数据集 三、自定义标准化函数 四、正向标准化 五、负向标准化 六、合并数据 一、公式介绍 将一列数据X标准化到指定区间[a,b] (一)正向标准化公式 nor_X(b-a)*(X-X_…

VUE-列表

VUE-列表 列表功能 如下例子 列表展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv&qu…

网络分析工具

为了实现业务目标&#xff0c;每天都要在网络上执行大量操作&#xff0c;网络管理员很难了解网络中实际发生的情况、谁消耗的带宽最多&#xff0c;并分析是否正在发生任何可能导致带宽拥塞的活动。对于大型企业和分布式网络来说&#xff0c;这些挑战是多方面的&#xff0c;为了…

AI边缘计算盒子+ThingSense管理平台,推动明厨亮灶智慧监管新篇章

背景随着“互联网”时代的浪潮汹涌而至&#xff0c;国家及各地政府纷纷在“十四五”规划中明确指出&#xff0c;强化食品安全管理&#xff0c;利用技术手段实现智慧监管是刻不容缓的任务。为此&#xff0c;各地正加速推进“互联网明厨亮灶”的建设步伐&#xff0c;实现系统对接…

C# 报输入字符串格式不正确的原因

先放错误代码 23 class Voicewater 24 { 25 public void voicealarm(int tem) 26 { 27 Console.WriteLine("现在的温度是{}度了",tem); 28 } 29 } 解决方法…

14 Php学习:表单

表单 PHP 表单是用于收集用户输入的工具&#xff0c;通常用于网站开发。PHP 可以与 HTML 表单一起使用&#xff0c;用于处理用户提交的数据。通过 PHP 表单&#xff0c;您可以创建各种类型的表单&#xff0c;包括文本输入框、复选框、下拉菜单等&#xff0c;以便用户可以填写和…

Create an SAP Fiori App Using SAP Business Application Studio/连接时服务不可用

Create an SAP Fiori App Using SAP Business Application Studio 如果连接时遇到服务不可用 我们需要配置BTP上的连接。 参考文档 更改之后需要刷新 studio界面&#xff0c;重新选择就可以正常工作了

Linux 基于 UDP 协议的简单服务器-客户端应用

目录 一、socket编程接口 1、socket 常见API socket()&#xff1a;创建套接字 bind()&#xff1a;将用户设置的ip和port在内核中和我们的当前进程关联 listen() accept() 2、sockaddr结构 3、inet系列函数 二、UDP网络程序—发送消息 1、服务器udp_server.hpp initS…

【随笔】Git 高级篇 -- 远程服务器拒绝 git push reset(三十二)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

vue中使用水印

1. 在utils下创建watermark.js const watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container* param {需要设置水印的每一块的宽度} canWidth* param {需要设置水印的每一块的高度} canHeight* param {需要设置水印的字体} canFont* para…

【IDEA】JRebel LS client not configured

主要原因就是因为 jrebel 的版本跟 idea的版本对不上&#xff0c;或者说jrebel的版本比idea的版本还高&#xff0c;导致出现该错误 查看idea版本 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a7ba43e6822947318cdb0d0e9d8d65e9.png 获取jrebel 版本 如何处理 …