gpt4 book ai didi

python - 如何使用/从命名空间中获取列表元素?

转载 作者:行者123 更新时间:2023-12-04 17:05:55 28 4
gpt4 key购买 nike

我正在尝试编写一个 Python 程序,该程序将采用给定的列表并返回平均值。

#program name: average.py, author: Leo

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-lst", nargs='+', type=int, required=True)
xyz = parser.parse_args()

def GetAvg(xyz):
total = 0
for i in xyz:
total = total + i

finalAvg = total / len(xyz)
return finalAvg

if __name__ == "__main__":
GetAvg(xyz)

当我在我的 cmd 提示符下运行它时,我将它作为
python average.py -lst 4 5 7 3 2

但是,我总是收到错误消息: 'Namespace' object is not iterable .

当我做 print(xyz)它返回 "Namespace(lst=[4, 5, 7, 3, 2])" .

所以我的问题是:
如何让这个函数使用命名空间中的列表? - 或 - 我是否使用其他的 argparse功能来完成这个?

我为任何不正确的语法或样式道歉,首先在 StackOverflow 上发帖。

最佳答案

解析器返回带有所有参数的命名空间,您必须访问特定的参数。这是您的程序,其中包含一些注释更改:

import argparse


def get_avg(xyz): # use pep8-style names (get_avg instead of GetAvg)
total = sum(xyz) # use predefined Python functions
return total / len(xyz)


if __name__ == "__main__":
# put all of the main program here so that it is not executed
# if the function is called from elsewhere
parser = argparse.ArgumentParser()
parser.add_argument("-lst", nargs='+', type=int, required=True)
xyz = parser.parse_args().lst # access the needed argument
print(get_avg(xyz))

关于python - 如何使用/从命名空间中获取列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60937904/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com