我用python编写了这段代码。
import sys
list1 = ["A", "B", "C"]
list2 = [1, 2, 3]
myarg = sys.argv[1]
print len(myarg)
我将从命令行运行此脚本,如下所示
python script.py list1
所以我需要一种方法让len处理列表而不是变量,我只想在var中给出列表的名称。
我知道这个例子我能做到
if myarg == "list1":
print len(list1)
else if myarg == "list2"
print len(list2)
但是我的脚本中有13个列表,我需要一种方法来引用我在命令行中给出的名称。
最佳答案
虽然这在python中是完全可能的,但并不需要。最好的解决办法是不要这样做,而是用字典来代替。
import sys
lists = {
"list1": ["A", "B", "C"],
"list2": [1, 2, 3],
}
myarg = sys.argv[1]
print len(lists[myarg])
您注意到脚本中有13个列表-其中有许多相似的数据(或需要以类似方式处理的数据),这是您想要数据结构而不是平面变量的标志。它会让你的生活更轻松。