Python函数可以修改列表或dict外部,但不能修改字符串

Python函数可以修改列表或dict外部,但不能修改字符串,python,Python,为什么Python函数可以修改列表或dict,但不能在外部修改字符串: 这是有意义的,因为函数创建范围,所以setit函数创建新变量: ttt = 'ttt' def setit(it): ttt = it print(ttt) def showit(): print(ttt) if __name__ == "__main__": setit("lsdfjlsjdf") showit() 但如何解释这一点,setit函数可以在外部修改列表: aaa

为什么Python函数可以修改
列表
dict
,但不能在外部修改
字符串

这是有意义的,因为函数创建范围,所以setit函数创建新变量:

ttt = 'ttt'

def setit(it):
    ttt = it
    print(ttt)

def showit():
    print(ttt)

if __name__ == "__main__":
    setit("lsdfjlsjdf")
    showit()
但如何解释这一点,setit函数可以在外部修改列表:

aaa = []

def setit(it):
    ttt = it
    aaa.append(it)

def showit():
    print(aaa)


if __name__ == '__main__':
    setit(123)
    showit()
    setit(234)
    showit()

因为字符串是不可变的。不能编辑字符串,只能创建新字符串

资料来源:


另请参见:

,因为字符串是不可变的。不能编辑字符串,只能创建新字符串

资料来源:


另请参见:

毫不犹豫地回答一个明显的骗局!美好的但使用全球能改变它吗?毫不犹豫地回答一个明显的骗局!美好的但使用全球可以改变吗?