Python 函数内部如何调用并改变全局列表变量

在python中,对于全局数字变量、字符串变量、列表变量,函数内部只能调用,却无法改变其值;但是,对于字典变量,函数内部是可以改变全局字典变量的值的!

函数内部对全局变量的修改情况

验证方案

# 全局变量
x = 50
str = 'str'
dt = {'1': 'one'}
li = []

# 自定义函数
def func(x, str, dt, li):
    print('局部变量x={}, str={}, dt={}, li={}'.format(x, str, dt, li))
    x = 2
    str = 'string'
    dt['1'] = '1'
    li = [1]
    print('局部变量x={}, str={}, dt={}, li={}'.format(x, str, dt, li))

# 调用函数,验证全局变量的变化
func(x, str, dt, li)
print('全局常数变量x=', x)
print('全局字符串变量str=', str)
print('全局字典变量dt=', dt)
print('全局列表变量li=', li)

结果证明

在这里插入图片描述
通过结果分析,可以得出结论:除了字典变量得到修改,其他的都没有改变!


在实际开发的过程中,可能会遇到在函数内部改变全局列表变量的值的需求,怎么去实现呢?

如何在函数内部修改全局列表变量

其实很简单,我们只需要借用字典结构就可以实现这个功能!

举个简单的栗子

# 全局字典变量,value为列表
dict_list = {1: []}

# 自定义函数
def func(li):
    dict_list[1] = li

# 调用函数,验证结果
func([1, 2])
print(dict_list)
func([3, 4])
print(dict_list)

结果证明

在这里插入图片描述
例子很简单,却很能说明问题,完全实现了需求!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九思梦鹿

喜欢,请记得点赞或赞赏哟

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值