我用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个列表-其中有许多相似的数据(或需要以类似方式处理的数据),这是您想要数据结构而不是平面变量的标志。它会让你的生活更轻松。

09-06 12:08