使用 argparse 将逗号分隔的多个整数值作为输入,并检查列表中是否存在这些值
Take comma separated multiple integer values as input using argparse and check if any of those values are present in a list
我有一个列表,例如:
L1 = [["Apple" , 1 , 200] , ["Grapes" , 4 , 100] , ["Banana" , 1 , 20]]
使用 argparse,我希望用户输入逗号分隔的多个整数值。
如果用户输入的值存在于列表的中间位置,即 L1[1]
,则应打印整个列表。
例如:
python test.py -x 1,2
应该输出:
Apple , 1, 200
Banana , 1 , 20
我尝试将用户输入存储为元组。
如何将那些元组元素与列表的中间位置进行比较?
我该如何实施?
我应该如何存储用户输入并用我的列表检查用户输入的每个元素?
提前感谢您的帮助!
在元组中输入整数后,您可以这样做:
user_input = (1, 2)
L1 = [["Apple", 1, 200], ["Grapes", 4, 100], ["Banana", 1, 20]]
for i in user_input:
for sublist in L1:
if i == sublist[1]:
print(sublist)
In [1]: import argparse
定义解析器:
In [6]: parser=argparse.ArgumentParser()
In [7]: parser.add_argument('-x', nargs='+', type=int);
测试输入。通过使用 nargs
和 type
,我输入一个 space 分隔的数字,并得到一个数字列表:
In [8]: args = parser.parse_args('-x 1 2'.split())
In [9]: args
Out[9]: Namespace(x=[1, 2])
然后很容易找到 L1
的元素与列表理解(或循环,如果你愿意的话):
In [10]: L1 = [["Apple" , 1 , 200] , ["Grapes" , 4 , 100] , ["Banana" , 1 , 20]]
In [11]: [val for val in L1 if val[1] in args.x]
Out[11]: [['Apple', 1, 200], ['Banana', 1, 20]]
我有一个列表,例如:
L1 = [["Apple" , 1 , 200] , ["Grapes" , 4 , 100] , ["Banana" , 1 , 20]]
使用 argparse,我希望用户输入逗号分隔的多个整数值。
如果用户输入的值存在于列表的中间位置,即 L1[1]
,则应打印整个列表。
例如:
python test.py -x 1,2
应该输出:
Apple , 1, 200
Banana , 1 , 20
我尝试将用户输入存储为元组。
如何将那些元组元素与列表的中间位置进行比较?
我该如何实施?
我应该如何存储用户输入并用我的列表检查用户输入的每个元素?
提前感谢您的帮助!
在元组中输入整数后,您可以这样做:
user_input = (1, 2)
L1 = [["Apple", 1, 200], ["Grapes", 4, 100], ["Banana", 1, 20]]
for i in user_input:
for sublist in L1:
if i == sublist[1]:
print(sublist)
In [1]: import argparse
定义解析器:
In [6]: parser=argparse.ArgumentParser()
In [7]: parser.add_argument('-x', nargs='+', type=int);
测试输入。通过使用 nargs
和 type
,我输入一个 space 分隔的数字,并得到一个数字列表:
In [8]: args = parser.parse_args('-x 1 2'.split())
In [9]: args
Out[9]: Namespace(x=[1, 2])
然后很容易找到 L1
的元素与列表理解(或循环,如果你愿意的话):
In [10]: L1 = [["Apple" , 1 , 200] , ["Grapes" , 4 , 100] , ["Banana" , 1 , 20]]
In [11]: [val for val in L1 if val[1] in args.x]
Out[11]: [['Apple', 1, 200], ['Banana', 1, 20]]