gpt4 book ai didi

Python 参数解析 : Force a list item to be unique

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:34 25 4
gpt4 key购买 nike

能够使用下面的 choices=servers 验证列表项很好。

servers = [ "ApaServer", "BananServer", "GulServer", "SolServer", "RymdServer", "SkeppServer", "HavsServer", "SovServer" ]
parser = argparse.ArgumentParser()
parser.add_argument('-o', '--only', nargs='*', choices=servers, help='Space separated list of case sensitive server names to process')

是否可以强制列表中的项目是唯一的,以便不允许重复?

最佳答案

使用 argparse 正确丢弃重复项的方法是创建您自己的 argparse.Action 类,按照建议使用 set通过其他答案:

import argparse

class UniqueAppendAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
unique_values = set(values)
setattr(namespace, self.dest, unique_values)

servers = ["ApaServer", "BananServer", "GulServer", "SolServer",
"RymdServer", "SkeppServer", "HavsServer", "SovServer" ]
parser = argparse.ArgumentParser()
parser.add_argument('-o', '--only', nargs='*', choices=servers, action=UniqueAppendAction,
help='Space separated list of case sensitive server names to process')
print parser.parse_args()

示例输出:

$ python test.py -o ApaServer ApaServer
Namespace(only=set(['ApaServer']))

关于Python 参数解析 : Force a list item to be unique,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9376670/

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