我正在尝试的代码如下 -
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的变量进行比较。
如果有任何其他逻辑,那么欢迎。 谢谢
答案 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)