首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将来自for循环的值制作成多维列表

如何将来自for循环的值制作成多维列表
EN

Stack Overflow用户
提问于 2019-07-17 14:48:13
回答 2查看 60关注 0票数 2

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

在这里,我使用Python列表相关的方法来获取输出。

代码语言:javascript
复制
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(","))

实际结果:

代码语言:javascript
复制
[['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软件‘、’C2960S软件(C2960S-UNIVERSALK9-M)‘、’版本15.0(2)SE11‘、’发布软件(fc3)‘

代码语言:javascript
复制
['NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L  ', ' VID: V02  ', ' SN: FOC1452X5C5']

将来自循环中的其他命令。

期望:

代码语言:javascript
复制
[['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']]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-17 14:52:58

尝试将以下代码作为最后一行:

代码语言:javascript
复制
print([myList2[i] + myList2[i + 1] for i in range(0, len(myList2), 2)])

输出:

代码语言:javascript
复制
[['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']]
票数 2
EN

Stack Overflow用户

发布于 2019-07-17 14:55:17

你可以这样做

代码语言:javascript
复制
[x + y for x, y in zip(myList2[0::2], myList2[1::2])]

对于给定的示例,如下所示:

代码语言:javascript
复制
In [15]: myList2 = [['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: FOC
    ...: 1452X5C5'], ['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: FO
    ...: C1502Z4G1']]

In [16]: [x + y for x, y in zip(myList2[0::2], myList2[1::2])]
Out[16]:
[['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']]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57070030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档