首页 > 编程语言 >Python——列表与函数的关系

Python——列表与函数的关系

时间:2024-09-21 20:49:45浏览次数:3  
标签:函数 Python list 列表 print dict 序列

目录

1.问题描述

2.与Python其他序列类型比较

3.与C语言比较

4.结论


1.问题描述

Python中为方便对列表进行修改,规定列表传入函数后进行的修改是直接针对原列表所在地址的,即在函数中对传入的列表的修改是全局的、永久的。

示例代码如下:

def fun(list):
    list[0][0]=18

list_1 = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]

print(list_1)
print(id(list_1))

fun(list_1)
print(list_1)
print(id(list_1))

运行结果:

列表list_1进入函数fun进行修改后,其值在全局上也发生变化。

2.与Python其他序列类型比较

列表list有第一节的特性,思考:Python的其他序列是否有相同特性。

Python主要有5种序列,如下表:

Python的5种序列的对比
数据类型序列类型元素是否可重复是否有序定义符号
列表list可变序列可重复有序[ ]
元组tuple不可变序列可重复有序( )
字典dict可变序列Key不可重复,Value可重复无序{key:value}
集合set可变序列不可重复无序{ }
字符串str不可变序列可重复有序‘ ’

2.1.元组

元组是不可变序列,元素不能改变,故元祖没有第一节的特性。

2.2.字典

代码测试如下:

def fun_1(d):
    d['名字'] = '居家学习研究牲'

dict_1={'名字':'居家学习带学牲','年龄':23}
print(dict_1)
print(id(dict_1))

fun_1(dict_1)

print(dict_1)
print(id(dict_1))

运行结果:

故字典有第一节所述特性。

2.3.集合

集合无序,无法索引只能遍历,不可以对集合进行直接修改。故集合没有第一节的特性。

2.4.字符串

元组是不可变序列,元素不能改变,故字符串没有第一节的特性。

3.与C语言比较

C语言中有局部变量与全局变量的区分。

在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的,在函数内进行的修改也仅限与外部无关。这称为“局部变量”。特别的,传入局部函数形式参数也是局部变量。

在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是“全局变量”。

Python对于此部分的规定与C语言略有不同,由C语言入门编程的同学在学习需要注意。

4.结论

1.Python的列表、字典在传入局部函数后的修改是全局的。

2.元组、集合、字符串不需要考虑局部函数的改动造成全局上数据的变动。

3.避免方法:可以应用“深拷贝”的方法,得到新的序列进行改动,从而避免局部函数对原数据序列造成影响。

水平有限,若有错误,敬请指教。

vx:HZ2513609007

标签:函数,Python,list,列表,print,dict,序列
From: https://blog.csdn.net/qq_25896787/article/details/142422606

相关文章

  • 24/9/21 python的推导式、生成器
    python推导式和生成器介绍1.列表推导式(ListComprehension)列表推导式是最常见的一种推导式,它允许你用一行代码生成列表,形式如下:new_list=[expressionforiteminiterableifcondition]expression:要添加到新列表的值,可以是简单的变量,也可以是运算结果。item:来自迭代......
  • D13【python接口自动化学习】-python基础之内置数据类型
    day13集合学习日期:20240920学习目标:内置数据类型--22常见常新:集合的常见操作学习笔记:集合与set对象创建set对象set对象的常用操作#使用set对象对元组去重color=('r','g','b','g','b','b')#创建元组new_color=set(color)#转换set对象去重print(new_color)#......
  • D14【python接口自动化学习】-python基础之内置数据类型
    day14字典的定义学习日期:20240921学习目标:内置数据类型--23字典:如何处理映射类型的数据?学习笔记:映射与字典字典的定义字典的删除总结字典用于存储键值对,键值对之间有关联字典键要求可哈希,一般采用字符串,元组做字典的键值可以使用dic()函数、推导式和花括号{}三......
  • Python基于TensorFlow实现时间序列循环神经网络回归模型(LSTM时间序列回归算法)项目实
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。1.项目背景随着信息技术的发展和传感器设备的广泛应用,时间序列数据的产生量急剧增加。无论是股市价格的波动、电力消耗的趋势还是环境监测的数据变化,准确地预......
  • 20240921全国计算机二级Python考试(大头博士计算二级)
    一、背景需求:20240921我在上海应用技术大学44号楼考场参加2024年9月的全国计算机二级(Python语言程序设计)考试。时隔多年,再次来到大学校园,恍若隔世扫码找考场在哪里考场须知1、进考场,先刷身份证刷脸核对2、进入机房前,上厕所,手机关闭闹钟后关机,放到包里,身上有蓝......
  • 基于python+flask框架的基于微信小程序的小区疫情防控(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球疫情的持续影响,社区作为疫情防控的第一线,其管理效率与响应速度直接关系到居民的健康安全。传统的小区管理方式在面对疫情时显得力......
  • 基于python+flask框架的基于微信小程序的闲置物品交易系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,尤其是移动互联网的普及,人们的生活方式发生了深刻的变化。在校园环境中,学生群体拥有大量的闲置物品,如书籍、电子......
  • 基于python+flask框架的基于微信小程序的食疗坊软件开发(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代生活节奏的加快与人们健康意识的日益增强,如何通过日常饮食实现健康管理成为了大众关注的焦点。然而,在信息爆炸的时代,科学、便捷的......
  • 基于python+flask框架的基于微信小程序的健身房系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,智能手机已成为人们日常生活中不可或缺的一部分,而微信小程序凭借其即用即走、无需下载安装的便捷性,在各行各......
  • 鸿蒙开发项目中你是怎么理解生命周期?你知道的生命周期函数有那些, 说一下执行时机?(页面
    生命周期流程如下图所示,下图展示的是被@Entry装饰的组件(页面)生命周期。#一、怎么理解生命周期?生命周期:简单点理解就是从创建到销毁的过程#二、你知道的生命周期函数有那些,说一下执行时机?自定义组件:@Component装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组......