2015-11-17 129 views
-1

我正努力的代码字符串中的名称是如下 -访问列表的列表,如蟒蛇

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

你的意思是你想要做的'打印IP_List'和应该给你'[ “IP1_list”, “IP2_list”, “IP3_list”]'?这不可能。改用字典: – Torxed

回答

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)