Python 如何从for循环的值生成多维列表

Python 如何从for循环的值生成多维列表,python,Python,在我的代码中有两个循环一个主for循环将从ip地址列表中读取一些ip地址,第二个循环是我向这些ip发送一些命令并获得一些输出(必需),我发送两个命令并从这些命令中获得两个输出。首先,我使用split(,)分离这些输出方法,并使用append方法将其附加到列表中。我正在获得接近所需输出的输出,但没有获得准确或预期的输出。请帮助我获取该输出 这里我使用Python列表相关的方法来获得输出 cli_commands = ['sh version | i p n|Cisco IOS','sh inven

在我的代码中有两个循环一个主for循环将从ip地址列表中读取一些ip地址,第二个循环是我向这些ip发送一些命令并获得一些输出(必需),我发送两个命令并从这些命令中获得两个输出。首先,我使用split(,)分离这些输出方法,并使用append方法将其附加到列表中。我正在获得接近所需输出的输出,但没有获得准确或预期的输出。请帮助我获取该输出

这里我使用Python列表相关的方法来获得输出

cli_commands = ['sh version | i p n|Cisco IOS','sh inventory']
for k in range(len(cli_commands)):
    net_connect.send_command(cli_commands[k])
    vall=net_connect.send_command(cli_commands[k])
    #myList2.extend(vall.strip().split(","))
    #myList2.append(vall.split(","))
    myList2.append(vall.strip().split(","))
实际结果:

[['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)'], ['NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L  ', ' VID: V02  ', ' SN: FOC1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)'], ['NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L  ', ' VID: V02  ', ' SN: FOC1502Z4G1']]
在这里,外部环路将获得ip地址并转到内部forloop,在那里它将逐个执行两个命令,['Cisco IOS Software'、'C2960S Software(C2960S-UNIVERSALK9-M)'、'Version 15.0(2)SE11'、'RELEASE Software(fc3)']将来自第一个命令和

['NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L  ', ' VID: V02  ', ' SN: FOC1452X5C5']
将来自循环中的其他命令

期望:

[['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L  ', ' VID: V02  ', ' SN: FOC1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L  ', ' VID: V02  ', ' SN: FOC1502Z4G1']]

最后一行请尝试以下操作:

print([myList2[i] + myList2[i + 1] for i in range(0, len(myList2), 2)])
输出:

[['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L  ', ' VID: V02  ', ' SN: FOC1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L  ', ' VID: V02  ', ' SN: FOC1502Z4G1']]
你可以

[x + y for x, y in zip(myList2[0::2], myList2[1::2])]
举个例子:

In[15]:myList2=['Cisco IOS软件','C2960S软件(C2960S-UNIVERSALK9-M)','Version15.0(2)SE11','RELEASE
…:软件(fc3)、“名称:“1”、“描述:”WS-C2960S-24TS-L”\nPID:WS-C2960S-24TS-L、“视频:V02”、“序列号:FOC”
…:1452X5C5'],[“Cisco IOS软件”,“C2960S软件(C2960S-UNIVERSALK9-M)”,“版本15.0(2)SE11”,“发布
…:软件(fc3)”,“名称:“1”,描述:“WS-C2960S-48TS-L”\nPID:WS-C2960S-48TS-L,“视频:V02”,“序列号:FO”
…:C1502Z4G1']]
在[16]:[x+y代表x,y在zip中(myList2[0::2],myList2[1::2])]
出[16]:
[['思科IOS软件',
“C2960S软件(C2960S-UNIVERSALK9-M)”,
“版本15.0(2)SE11”,
“发布软件(fc3)”,
"名称:"1",,
'描述:“WS-C2960S-24TS-L”\nPID:WS-C2960S-24TS-L',
'视频:V02',
'序号:FOC1452X5C5'],
[‘思科IOS软件’,
“C2960S软件(C2960S-UNIVERSALK9-M)”,
“版本15.0(2)SE11”,
“发布软件(fc3)”,
"名称:"1",,
'描述:“WS-C2960S-48TS-L”\nPID:WS-C2960S-48TS-L',
'视频:V02',
'SN:FOC1502Z4G1']]

请格式化您的帖子。请提供command sh version | i p n | Cisco IOS‘“sh Inventory”中的示例数据。这对我有用,谢谢,请您解释一下,如果有超过2个命令输出,还需要做些什么。@user3420561它只需要获得所有偶数,0、2、4、6等等。。得到它的值,和+1的值