You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python函数内arg是列表,返回后却为字符串?代码问题咨询

问题解答:为何函数处理后变量还是原字符串?

先看你贴的代码:

def strip_split(arg):
    arg = arg.split(", ")
    return arg


users = ["admin, adm1n"]

for user in users:
    strip_split(user)
    print(user)
    print(user[0])

问题出在这两点:

  • 字符串是不可变类型:Python里字符串一旦创建就无法修改,你把user传给函数时,函数拿到的是这个字符串的副本,函数内部修改arg只是修改了这个副本,完全不会影响外部的user变量。
  • 未接收函数返回值:你的函数已经把处理好的列表返回了,但调用strip_split(user)后,你没把返回的结果重新赋值给user,所以user始终还是原来的字符串。

要达到你预期的效果,只需要把函数返回的结果重新赋值给user即可,修改后的代码如下:

def strip_split(arg):
    arg = arg.split(", ")
    return arg


users = ["admin, adm1n"]

for user in users:
    user = strip_split(user)  # 接收函数返回的处理结果
    print(user)
    print(user[0])

这样运行后,print(user)会输出['admin', 'adm1n'],print(user[0])会输出admin,和你的预期一致。

内容的提问来源于stack exchange,提问作者Alex Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:00:49