Python:遍历变量列表
Python: Iterate over list of variables
我在遍历变量列表时遇到了一些问题。具体来说,我想编写一个 return 关于 运行 系统的信息的函数。下面是我尝试过的 for 循环示例:
def sysInfo():
cpu = psutil.cpu_count()
memory = psutil.virtual_memory()
disk = psutil.disk_usage('/')
specs = [cpu, memory, disk]
for c in specs:
return c
print sysInfo()
该函数运行没有错误,但只有 return 是列表中的第一项,这让我得出结论,循环只执行一次。但是,如果我用 print 切换 return 语句(并调用函数而不是打印它),那么列表中的所有项目都会被打印出来。
然后我的问题就变成了:为什么循环只给出列表中带有 return 的第一项,而打印却给出了所有项?
一旦你调用 return
一次,你就不能 "go back" 函数 - 它完成 运行.
只是 return 整个列表,并在必要时单独打印每个元素。
return
关键字将使您的函数立即结束。在循环的第一次迭代中,当到达 return
语句时,您的函数将结束并且 c
将被 returned.
您可以做的是 return 整个列表,而不使用任何循环:
return specs
它们是函数和方法。在 python 中,我们以相同的方式定义它们,但它们不是。当您使用 return 语句时,您会中断循环和 return 值。如果你想要 return 整个列表,你可以输入:
return specs
然后调用变量:
sysInfo()[some_index]
好主意是将 return 改为字典:
return {"cpu": cpu, "memory":memory, "disk":disk}
然后你可以通过
调用变量
sysInfo()["cpu"]
当您在函数中调用 return
时,函数将结束执行并 return 给定值或 None
如果调用 return
时没有 return值。
但为什么要使用 for 循环呢。你可以简单地写:
def sysInfo():
cpu = psutil.cpu_count()
memory = psutil.virtual_memory()
disk = psutil.disk_usage('/')
return cpu, memory, disk
print sysInfo()
你对这个问题的看法叫做yield
。但是,在这种情况下,只是 return specs
为了您好。
我在遍历变量列表时遇到了一些问题。具体来说,我想编写一个 return 关于 运行 系统的信息的函数。下面是我尝试过的 for 循环示例:
def sysInfo():
cpu = psutil.cpu_count()
memory = psutil.virtual_memory()
disk = psutil.disk_usage('/')
specs = [cpu, memory, disk]
for c in specs:
return c
print sysInfo()
该函数运行没有错误,但只有 return 是列表中的第一项,这让我得出结论,循环只执行一次。但是,如果我用 print 切换 return 语句(并调用函数而不是打印它),那么列表中的所有项目都会被打印出来。
然后我的问题就变成了:为什么循环只给出列表中带有 return 的第一项,而打印却给出了所有项?
一旦你调用 return
一次,你就不能 "go back" 函数 - 它完成 运行.
只是 return 整个列表,并在必要时单独打印每个元素。
return
关键字将使您的函数立即结束。在循环的第一次迭代中,当到达 return
语句时,您的函数将结束并且 c
将被 returned.
您可以做的是 return 整个列表,而不使用任何循环:
return specs
它们是函数和方法。在 python 中,我们以相同的方式定义它们,但它们不是。当您使用 return 语句时,您会中断循环和 return 值。如果你想要 return 整个列表,你可以输入:
return specs
然后调用变量:
sysInfo()[some_index]
好主意是将 return 改为字典:
return {"cpu": cpu, "memory":memory, "disk":disk}
然后你可以通过
调用变量sysInfo()["cpu"]
当您在函数中调用 return
时,函数将结束执行并 return 给定值或 None
如果调用 return
时没有 return值。
但为什么要使用 for 循环呢。你可以简单地写:
def sysInfo():
cpu = psutil.cpu_count()
memory = psutil.virtual_memory()
disk = psutil.disk_usage('/')
return cpu, memory, disk
print sysInfo()
你对这个问题的看法叫做yield
。但是,在这种情况下,只是 return specs
为了您好。