我在 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 个列表 - 其中有很多类似的数据(或需要以类似方式处理的数据),这表明您需要数据结构,而不是平面变量。这将使您的生活更轻松。
关于Python - 使用变量作为列表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324465/