当前位置: 首页 > news >正文

list、tuple、set和dict传参机制

 1、list、tuple、set和dict传参机制

# -------------list-------------
def f1(my_list):print(f"②f1()my_list:{my_list} 地址是:{id(my_list)}") # ["tom","mary","hsp"] 0x1122my_list[0]="jack"print(f"③f1()my_list:{my_list} 地址是:{id(my_list)}") # ["jack","mary","hsp"] 0x1122# 测试
my_list=["tom","mary","hsp"]
print(f"①f1()my_list:{my_list} 地址是:{id(my_list)}")  # ["tom","mary","hsp"] 0x1122
# 调用函数
f1(my_list)
print(f"④f1()my_list:{my_list} 地址是:{id(my_list)}")  # ["jack","mary","hsp"] 0x1122print("="*60)
# -------------tuple-------------
def f2(my_tuple):print(f"②f2()my_tuple:{my_tuple} 地址是:{id(my_tuple)}") #("hi","ok","hello") 0x1122# 不能修改# my_tuple[0]="red"print(f"③f2()my_tuple:{my_tuple} 地址是:{id(my_tuple)}") #("hi","ok","hello") 0x1122#测试
my_tuple=("hi","ok","hello")
print(f"①f2()my_tuple:{my_tuple} 地址是:{id(my_tuple)}") #("hi","ok","hello") 0x1122
f2(my_tuple)
print(f"④f2()my_tuple:{my_tuple} 地址是:{id(my_tuple)}") #("hi","ok","hello") 0x1122print("="*60)
# -------------set-------------
def f3(my_set):print(f"②f3()my_set:{my_set} 地址是:{id(my_set)}") #{"水浒","西游","三国"} 0x1122my_set.add("红楼梦")print(f"③f3()my_set:{my_set} 地址是:{id(my_set)}") #{"水浒","西游","三国","红楼梦"} 0x1122# 测试
my_set={"水浒","西游","三国"}
print(f"①f3()my_set:{my_set} 地址是:{id(my_set)}") #{"水浒","西游","三国"} 0x1122
f3(my_set)
print(f"④f3()my_set:{my_set} 地址是:{id(my_set)}") #{"水浒","西游","三国","红楼梦"} 0x1122print("="*60)
# -------------dict-------------
def f4(my_dict):print(f"②f4()my_dict:{my_dict} 地址是:{id(my_dict)}") #{"name":"小明","age":18} 0x1122my_dict['address']="兰若寺"print(f"③f4()my_dict:{my_dict} 地址是:{id(my_dict)}") #{"name":"小明","age":18,"address":"兰若寺"} 0x1122# 测试
my_dict={"name":"小明","age":18}
print(f"①f4()my_dict:{my_dict} 地址是:{id(my_dict)}") #{"name":"小明","age":18} 0x1122
f4(my_dict)
print(f"④f4()my_dict:{my_dict} 地址是:{id(my_dict)}") #{"name":"小明","age":18,"address":"兰若寺"} 0x1122

2、结论及示意图

1)tuple(元组):是不可变数据类型,不能修改

2)list(列表)、set(集合)和dict(字典)是可变数据类型,当对应的变量的值发生了变化时,它对应的内存地址不会发生改变

3)针对f1()函数的调用,画出示意图

3、小结

1)Python数据类型主要有整数int / 浮点数float / 字符串str / 布尔值bool / 列表list / 元组tuple / 集合set / 字典dict 

2)数据类型分为两大类:可变数据类型、不可变数据类型

3)可变数据类型和不可变数据类型

  • 可变数据类型:当该数据类型的变量的值发生了变化,如果它的内存地址不变,那么这个数据类型就是可变数据类型
  • 不可变数据类型:当该数据类型的变量的值发生了变化,如果它的内存地址改变了,那么这个数据类型就是不可变数据类型

4)Python的数据类型

可变数据类型:list(列表)、set(集合)、dict(字典)

不可变数据类型:数值类型(int、float)、bool(布尔)、string(字符串)、tuple(元组)

相关文章:

list、tuple、set和dict传参机制

1、list、tuple、set和dict传参机制 # -------------list------------- def f1(my_list):print(f"②f1()my_list:{my_list} 地址是:{id(my_list)}") # ["tom","mary","hsp"] 0x1122my_list[0]"jack"print(f&quo…...

Redis快速入门基础

Redis入门 Redis是一个基于内存的 key-value 结构数据库。mysql是二维表的接口数据库 优点: 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 企业应用广泛 官网:https://redis.io 中文网:https://www.redis.net.cn/ Redis下载与…...

python基础介绍

这次的专题是关于python的知识点,加油! 文章目录 1 什么是计算机(1.1 哪些可以称为计算机?(以下)(1.2 计算机可以完成的工作有哪些?(1.3 一台计算机由什么构成? 2. 什么是编程(2.1 编…...

SSRF中伪协议学习

SSRF常用的伪协议 file:// 从文件系统中获取文件内容,如file:///etc/passwd dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info: ftp:// 可用于网络端口扫描 sftp:// SSH文件传输协议或安全文件传输协议 ldap://轻量级目录访问协议 tftp:// 简单文件传输协议 gopher…...

Java | Leetcode Java题解之第284题窥视迭代器

题目&#xff1a; 题解&#xff1a; class PeekingIterator<E> implements Iterator<E> {private Iterator<E> iterator;private E nextElement;public PeekingIterator(Iterator<E> iterator) {this.iterator iterator;nextElement iterator.next(…...

哈尔滨等保定级的常见问题

一、哈尔滨等保测评定级标准理解问题 哈尔滨等保测评如何确定信息系统的安全保护等级&#xff1f; 信息系统的安全保护等级应根据其在国家安全、经济建设、社会生活中的重要程度&#xff0c;以及一旦遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权…...

springAOP理解及事务

AOP&#xff1a; springAOP是什么&#xff1a; AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;其实就是面向特定方法编程。 使用场景&#xff1a; 比如你想统计业务中每个方法的执行耗时&#xff0c;那我们最…...

Optional类的使用 java8(附代码)

&#x1f370; 个人主页:_小白不加班__ &#x1f35e;文章有不合理的地方请各位大佬指正。 &#x1f349;文章不定期持续更新&#xff0c;如果我的文章对你有帮助➡️ 关注&#x1f64f;&#x1f3fb; 点赞&#x1f44d; 收藏⭐️ 文章目录 一、什么是Optional&#xff1f;二、…...

企业利用AI智能名片S2B2C商城小程序参与社区团购的风险与机遇分析

摘要 在新零售浪潮的推动下&#xff0c;社区团购以其独特的商业模式迅速崛起&#xff0c;成为连接消费者与供应商的重要桥梁。企业纷纷探索如何有效利用这一新兴渠道&#xff0c;以扩大市场份额、提升品牌影响力。AI智能名片S2B2C商城小程序的引入&#xff0c;为企业参与社区团…...

全链路追踪 性能监控,GO 应用可观测全面升级

作者&#xff1a;古琦 01 介绍 随着 Kubernetes 和容器化技术的普及&#xff0c;Go 语言不仅在云原生基础组件领域广泛应用&#xff0c;也在各类业务场景中占据了重要地位。如今&#xff0c;越来越多的新兴业务选择 Golang 作为首选编程语言。得益于丰富的 RPC 框架&#xff…...

深入探索CSS3的Media Query:打造响应式网页设计的利器

在今天的互联网世界中&#xff0c;随着设备种类和屏幕尺寸的多样化&#xff0c;响应式网页设计&#xff08;Responsive Web Design, RWD&#xff09;已成为不可或缺的一部分。CSS3中的Media Query正是这一设计理念的实现利器&#xff0c;它允许开发者根据用户的设备特性和屏幕尺…...

DDD(Domain-Driven Design)领域驱动设计

在软件开发中&#xff0c;DDD&#xff08;Domain-Driven Design&#xff0c;领域驱动设计&#xff09;是一种方法论&#xff0c;它强调在开发过程中将业务领域的知识和规则作为核心。DDD的目标是通过理解和建模业务领域来创建更好的软件系统。本文将详细讲解DDD的基本概念、原则…...

基于k8s快速搭建docker镜像服务的demo

基于k8s快速搭建docker镜像服务的demo 一、环境准备 如标题&#xff0c;你需要环境中有和2个平台&#xff0c;并且服务器上也已经安装好docker服务 接下来我来构建一个docker镜像&#xff0c;然后使用harbork8s来快速部署服务demo 二、部署概述 使用docker构建镜像&#x…...

“论大数据处理架构及其应用”写作框架,软考高级论文,系统架构设计师论文

论文真题 大数据处理架构是专门用于处理和分析巨量复杂数据集的软件架构。它通常包括数据收集、存储、处理、分析和可视化等多个层面&#xff0c;旨在从海量、多样化的数据中提取有价值的信息。Lambda架构是大数据平台里最成熟、最稳定的架构&#xff0c;它是一种将批处理和流…...

tarojs项目启动篇

TaroJS 是一个开放式跨端开发解决方案&#xff0c;使用 React 语法规范来开发多端应用&#xff08;包括小程序、H5、React Native 等&#xff09;。它可以帮助开发者高效地构建出在不同端上运行一致的应用。以下是启动 TaroJS 项目&#xff08;本来就有的旧项目&#xff09;的步…...

Maven打包时将本地 jar 加入 classpath

在使用 maven 编译项目时&#xff0c;我们有时候会需要引入本地的 jar 包作为依赖&#xff08;不部署到本地仓库&#xff09;&#xff0c;一般会使用 scope 为 system 的标签来引入&#xff0c;如下所示&#xff1a; <dependency><groupId>com.example</groupI…...

Spring Boot打出的jar包为什么可以独立运行

闲来无事&#xff0c;浏览网页看到有人说jar包为什么可以独立运行&#xff0c;想起前端时间写的jar打包后无法正常运行处理。jar解压缩后有多个文件夹&#xff0c;内部存放运行所需jar包和一些配置文件&#xff0c;本文做一个简单介绍。 JAR包和WAR包区别 在Java开发中&#…...

“微软蓝屏”事件:网络安全与稳定性的深刻反思

&#x1f308;所属专栏&#xff1a;【其它】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点…...

【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位

目前项目当中使用的Nacos版本为2.0.2&#xff0c;该版本可能存在一定的安全风险。软件的安全性是一个持续关注的问题&#xff0c;尤其是对于像Nacos这样的服务发现与配置管理平台&#xff0c;它在微服务架构中扮演着核心角色。随着新版本的发布&#xff0c;开发团队会修复已知的…...

[题解]CF1401E.Divide Square(codeforces 05)

题目描述 There is a square of size 106106106106 on the coordinate plane with four points (0,0)(0,0) , (0,106)(0,106) , (106,0)(106,0) , and (106,106)(106,106) as its vertices. You are going to draw segments on the plane. All segments are either horizonta…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...