Python 通过函数修改参数
我想知道如何在不使用return的情况下返回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
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]