Python - 使用变量作为列表名称

标签 python

我在 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/

相关文章:

python - 如何从 read_game 中获取棋盘的最终位置?

python - 将数据框中的 float 舍入到最接近的特定浮点值(舍入到非整数列表)

python - 有没有一种更干净的Python方式来忽略对未初始化属性的调用?

python 3 : does Pool keep the original order of data passed to map?

python - GraphKeys.TRAINABLE_VARIABLES 与 tf.trainable_variables()

python - 如何将参数传递给 python Hadoop 流作业?

python - 改变 turtle 图形的操作

python - "dictionary update sequence element #0 has length 4; 2 is required"

python - 如何更改值范围内的轮廓颜色

python - 我的代码跳过 IF block 并转到 ELSE