python列表在函数体中发生改变,怎么使得函数体外该列表也发生同样改变?

简述如下

```
def func(List: list):
****List.append("1")
****return
List = []
print(List)

```)
除了return列表,还能咋样

def func(List: list):
global list # 自动修改函数外list
list=List
****List.append("1")
****return
List = []
print(List)

```)

设置全局,List 前面加上 global 参数

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7592802
  • 这篇博客你也可以参考下:python 函数中多个return 列表,元组,字典
  • 除此之外, 这篇博客: Python函数和函数式编程(两万字长文警告!一文彻底搞定函数,建议收藏!)中的 4.2多条return语句 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • reurn语向可以放置在函数中的任何位置,当执行到第一个retum语句时程序返回到调用程序。

    [例17]判断素数示例(prime py):先编写判断一个数是否为素数的函数,然后编写测试代码,判断并输出1~99中的素数。
    所谓素数(或称质数),是指除了1和该数本身,不能被任何整数整除的正整数。判断一个正整数,是否为素数,只要判断n可否被2~n中的任何个整数整除, 如果。不能被此范围中的任何一个整数整除,n即为素数,否则n为合数。

    def is_prime(n):
        if n < 2: return False  #如果n小于2,返回False
        i = 2
        while i*i <= n:
            #一旦n能够被2~i 中的任意整数整除,n就不是素数,返回False
            if n % i == 0: return False 
            i += 1
        return True
    #测试代码
    for i in range(100):  #判断并输出1~99中的素数,以空格分隔
        if is_prime(i):print(i, end=' ')
    

    在这里插入图片描述

  • 您还可以看一下 CSDN就业班老师的Python全栈工程师特训班第十四期-直播回放课程中的 Python全栈工程师特训班第十四期-第六周-3小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    要在函数体外改变被函数修改过的Python列表,可以通过传递引用的方式将列表作为参数传递给函数,然后在函数内部通过修改列表对应的元素来改变列表。

    下面是一个示例代码:

    def modify_list(lst):
        lst[0] = "modified"
    
    my_list = ["original"]
    print("Before modification:", my_list)
    
    modify_list(my_list)
    print("After modification:", my_list)
    

    输出结果为:

    Before modification: ['original']
    After modification: ['modified']
    

    在上面的示例中,我们定义了一个modify_list函数,该函数接受一个列表作为参数,并将列表的第一个元素修改为"modified"。然后我们创建了一个名为my_list的列表,并将其传递给modify_list函数进行修改。在函数体外部,我们可以看到my_list的第一个元素已经被修改为"modified"。

    通过这种方式,函数内部对列表的操作可以直接影响函数外部的同一个列表。这是因为在Python中,列表是可变对象,传递引用时实际上传递的是对象的引用,而不是对象的副本。因此,在函数内部对列表的修改会直接反映到函数外部。

    除了通过传递引用来改变函数外部的列表,还可以使用全局变量来实现这个目的。例如:

    my_list = ["original"]
    
    def modify_list():
        global my_list
        my_list[0] = "modified"
    
    print("Before modification:", my_list)
    modify_list()
    print("After modification:", my_list)
    

    输出结果为:

    Before modification: ['original']
    After modification: ['modified']
    

    在上面的示例中,我们定义了一个全局变量my_list,然后在函数modify_list中使用global关键字将该变量声明为全局变量,并对其进行修改。在函数体外部,我们可以看到my_list的值已经被修改为"modified"。

    不过,使用全局变量来改变函数外部的列表需要注意全局变量的作用域和可能引起的命名冲突问题,因此较推荐使用传递引用的方式。