Проблема с парсингом аргументов с argparse

Имеется одна проблема. Как можно при парсинге аргумента -l 1,2,3,4 вернуть не строку, а список из этих чисел?

def get_args():
    parse = argparse.ArgumentParser()
    parse.add_argument('-l', '--list', dest="list_for_bubble", help='List for Bubble Sorting')
    options = parse.parse_args()
return options

Ответы (1 шт):

Автор решения: MarianD

Вместо

return options

используйте

return options.list_for_bubble.split(",")

Значением options.list_for_bubble будет для вашего аргумента -l 1,2,3,4строка '1,2,3,4', которую функция split() превратит в список ['1', '2', '3', '4'].

Когда вы хотите вернуть список чисел, т.е. список [1, 2, 3, 4], используйте команду

return [int(i) for i in options.list_for_bubble.split(",")] 

или — более понятно — 2 команды

list_of_strings = options.list_for_bubble.split(",")
return list(map(int, list_of_strings))
→ Ссылка