将整数列表传递给python [英] Passing integer lists to python
问题描述
我想将 2 个整数列表作为输入传递给 python 程序.
I want to pass 2 lists of integers as input to a python program.
例如,(从命令行)
python test.py --a 1 2 3 4 5 -b 1 2
此列表中的整数范围为 1-50,列表 2 是列表 1 的子集.
任何帮助/建议?argparse
是正确的模块吗?使用它有任何顾虑吗?
The integers in this list can range from 1-50, List 2 is subset of List1.
Any help/suggestions ? Is argparse
the right module ? Any concerns in using that ?
我试过了:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--a', help='Enter list 1 ')
parser.add_argument('--b', help='Enter list 2 ')
args = parser.parse_args()
print (args.a)
推荐答案
您可以将它们作为字符串传递而不是转换为列表.您可以使用 argparse 或 optparse.
You can pass them as strings than convert to lists. You can use argparse or optparse.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--l1', type=str)
parser.add_argument('--l2', type=str)
args = parser.parse_args()
l1_list = args.l1.split(',') # ['1','2','3','4']
示例:python prog.py --l1=1,2,3,4
此外,作为一行,您可以传递类似 1-50 的内容,然后在-"上拆分并构造范围.像这样:
Also,as a line you can pass something like this 1-50 and then split on '-' and construct range. Something like this:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--l1', type=str, help="two numbers separated by a hyphen")
parser.add_argument('--l2', type=str)
args = parser.parse_args()
l1_list_range = xrange(*args.l1.split('-')) # xrange(1,50)
for i in l1_list_range:
print i
示例:python prog.py --l1=1-50
逻辑我认为你可以自己写.:)
Logic I think you can write yourself. :)
这篇关于将整数列表传递给python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!