我在python中获取列表中的一些开关命令输出,我可以在list中得到结果,但是这个列表包含两个元素,甚至那些元素都是逗号分隔的,我希望将这些逗号分隔的值作为list的单个元素。
我使用netmiko模块,在这里我使用python在list中取出一些命令输出。
for k in range(len(cli_commands)):
net_connect.send_command(cli_commands[k])
vall=net_connect.send_command(cli_commands[k])
myList1.append(vall)
```print(myList)
Actual result is:
['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\n\n']
Expectation:
['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\n\n']
or
['Cisco IOS Software','C2960S Software (C2960S-UNIVERSALK9-M)',Version 15.0(2)SE11','DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L','SN: FOC1452X5C5\n\n']发布于 2019-07-16 06:44:13
您必须对每个字符串进行.split(','),以获得嵌套列表,然后使其变得简单明了。.split()的使用会在每个sub_string的开头和结尾删除额外的空格。
the_list = ['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\n\n']
the_list = [map(lambda x: x.strip(), item.split(',')) for item in the_list]
new_list = [item for sub_list in the_list for item in sub_list]第一行将the_list中的每个字符串转换为映射生成器,在被','字符除以后将.strip() (修整空格)应用于每个子字符串。第二个就是让列表变得简单,这就是[[1, 2], [3, 4]]将变成[1, 2, 3, 4]。它相当于:
the_list = ['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\n\n']
new_list = []
for string in the_list:
for item in string.split(','):
new_list.append(item.strip())发布于 2019-07-16 06:41:15
看起来你需要str.split和list.extend
Ex:
myList1 = []
for k in range(len(cli_commands)):
net_connect.send_command(cli_commands[k])
vall=net_connect.send_command(cli_commands[k])
myList1.extend(vall.strip().split(","))
print(myList1)发布于 2019-07-16 06:45:14
绝对崩溃的答案是正确的,但你必须这样使用它
myList = ['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\n\n']
cs_mylist = []
for y in [x.split(',') for x in myList]:
for z in y:
cs_mylist.append(z)
print(cs_mylist)https://stackoverflow.com/questions/57051330
复制相似问题