Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过函数修改参数_Python - Fatal编程技术网

Python 通过函数修改参数

Python 通过函数修改参数,python,Python,我想知道如何在不使用return的情况下返回square\u each列表 下面是一些细节:编写并测试一个函数square\u each(nums),其中nums是一个(Python)数字列表。它通过平方每个条目并替换其原始值来修改列表nums。您必须修改参数,不允许返回 def square_each(nums): for i in range(len(nums)): nums[i]= int(nums[i]) * int(nums[i]) return num

我想知道如何在不使用return的情况下返回
square\u each
列表

下面是一些细节:编写并测试一个函数
square\u each(nums)
,其中
nums
是一个(Python)数字列表。它通过平方每个条目并替换其原始值来修改列表nums。您必须修改参数,不允许返回

def square_each(nums):
    for i in range(len(nums)):
        nums[i]= int(nums[i]) * int(nums[i])
    return nums

def sum_list(str_list):
    x = sum(str_list)
    return x

def to_numbers(str_list):
    for i in range(len(str_list)):
        str_list[i] = eval(str_list[i])
    return str_list

def main():
    file=open("numbers.txt").readline().split(" ")
    print(to_numbers(file))
    print(square_each(file))
    print(sum_list(file))

main()

您必须在全局范围内声明
nums

那么就这样做吧

nums = [] # your array in global scope

def square_each():
    # Now you can use original nums
    global nums
    for i in range(len(nums)):
        nums[i]= int(nums[i]) * int(nums[i])

您可以使用
列表理解
并体验Python如何处理对象。是的

您需要在此处就地修改列表


请注意,它比使用
global
或任何其他类似的东西要好,因为它可以防止由于
global
关键字而引入其他问题集。

您发布的函数
square\u each
已经满足您的条件:

def square_each(nums):
    for i in range(len(nums)):
        nums[i] = int(nums[i]) * int(nums[i])

l = [1, 2, 3]
square_each(l)
print(l)  # output: [1, 4, 9]

执行函数后,请检查
file
的值。由于指定了函数签名,并且
nums
必须作为参数传递,这不符合要求,是吗?
def square_each(nums):
    for i in range(len(nums)):
        nums[i] = int(nums[i]) * int(nums[i])

l = [1, 2, 3]
square_each(l)
print(l)  # output: [1, 4, 9]