将整数列表传递给python
问题内容:
我想将2个整数列表作为输入传递给python程序。
例如,(从命令行)
python test.py --a 1 2 3 4 5 -b 1 2
此列表中的整数范围可以是1-50,列表2是列表1的子集。
任何帮助/建议吗?是argparse
正确的模块吗?使用时有任何担忧吗?
我试过了 :
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。
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的内容,然后在’-‘上分割并构造范围。像这样:
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
逻辑我想你可以写自己。:)