[英]How to separate comma separated values in a list to make it individual values of a list
我在python中获取列表中的一些switch命令输出,我能够在列表中获得结果,但该列表包含两个元素,甚至这些元素以逗号分隔,我想将这些逗号分隔值作为列表的单个元素。
我正在使用netmiko模块,我正在使用python在列表中取出一些命令输出。
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']
看起来你需要str.split
与list.extend
例如:
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)
你必须使用.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
每个字符串the_list
为一个map生成器,该映射生成器在除以','
字符后将.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())
absolutedevastated的答案是正确的,但你必须像这样使用它
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.