在python中以列表形式访问列表中的列表名称

时间:2015-11-17 15:18:29

标签: python string list

我正在尝试的代码如下 -

IP1_list =['abcd', 'efgh']
IP2_list =['asdf', 'zxcv']
IP3_list =['qwer', 'poiu']

IP_list = [IP1_list, IP2_list, IP3_list]

command_list = [cmd1_IP1, cmd2_IP1, cmd3_IP2, cmd4_IP3]

for i in range(len(command_list)):
    command, IP = cpmmand_list[i].split('_',1)
    if some_var == command:
        for j in range(len(IP_list):
            IP_name, unwanted = IP_list[j].split('_',1)
            if IP_name = IP
                "do something" 

注意:some_var是我从其他函数获得的变量,它正常工作。

在这段代码中,我无法以字符串形式访问IP_list的元素,因为它的元素就是列表本身。 例如:如果我执行

print IP_list

它打印了我所有的三个列表

如何处理这个问题? 我想以字符串形式访问IP_list的3个元素,以便我可以解析它,然后与之前提取的名为IP的变量进行比较。

如果有任何其他逻辑,那么欢迎。 谢谢

1 个答案:

答案 0 :(得分:2)

您无法将变量的“名称”作为字符串获取,您将直接访问该对象,并且每个sae没有名称。但是,您可以切换到字典结构并将所需的名称存储为Key并将其中一个列表指定给它,如下所示:

IP1_list =['abcd', 'efgh']
IP2_list =['asdf', 'zxcv']
IP3_list =['qwer', 'poiu']

IP_list = {'IP1_list' : IP1_list, 'IP2_list' : IP2_list, 'IP3_list' : IP3_list}


for key in IP_list:
    IP_name, unwanted = key.split('_',1)
        if IP_name == IP:
            "do something"

但话又说回来,我会这样做:

IP_list = {'IP1' : IP1_list, 'IP2' : IP2_list, 'IP3' : IP3_list}

并跳过

IP_name, unwanted = key.split('_',1)