当前位置: 首页 > 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(元组)

http://www.lryc.cn/news/409161.html

相关文章:

  • Redis快速入门基础
  • python基础介绍
  • SSRF中伪协议学习
  • Java | Leetcode Java题解之第284题窥视迭代器
  • 哈尔滨等保定级的常见问题
  • springAOP理解及事务
  • Optional类的使用 java8(附代码)
  • 企业利用AI智能名片S2B2C商城小程序参与社区团购的风险与机遇分析
  • 全链路追踪 性能监控,GO 应用可观测全面升级
  • 深入探索CSS3的Media Query:打造响应式网页设计的利器
  • DDD(Domain-Driven Design)领域驱动设计
  • 基于k8s快速搭建docker镜像服务的demo
  • “论大数据处理架构及其应用”写作框架,软考高级论文,系统架构设计师论文
  • tarojs项目启动篇
  • Maven打包时将本地 jar 加入 classpath
  • Spring Boot打出的jar包为什么可以独立运行
  • “微软蓝屏”事件:网络安全与稳定性的深刻反思
  • 【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位
  • [题解]CF1401E.Divide Square(codeforces 05)
  • 软考高级第四版备考--第32天(新一代信息技术及应用)
  • 【RabbitMQ】MQ相关概念
  • 【MySQL是怎样运行的 | 第二篇】MySQL三大日志文件
  • 视图、存储过程、触发器
  • 【学习笔记】解决Serial Communication Library编译问题
  • 在 Windows 环境下实现负载均衡:提升系统性能与可靠性的关键技术
  • 【Linux】-----工具篇(自动化构建工具make/makefile)
  • 图的遍历:深度优先搜索(DFS)
  • 普元EOS学习笔记-某些版本的EOS提供的maven获取依赖失败的问题解决
  • Pycharm + Pyside6
  • 强化学习之价值迭代算法动态规划求解悬崖漫步环境(CliffWalking)最优策略及最优状态价值函数