Python 如何在列表中分隔逗号分隔的值,使其成为列表的单个值
我在python中获取列表中输出的一些开关命令,我能够在列表中获得结果,但该列表包含两个元素,甚至这些元素都是逗号分隔的,我希望将这些逗号分隔的值作为列表的单个元素 我使用的是netmiko模块,其中我使用python在列表中获取了一些命令输出Python 如何在列表中分隔逗号分隔的值,使其成为列表的单个值,python,Python,我在python中获取列表中输出的一些开关命令,我能够在列表中获得结果,但该列表包含两个元素,甚至这些元素都是逗号分隔的,我希望将这些逗号分隔的值作为列表的单个元素 我使用的是netmiko模块,其中我使用python在列表中获取了一些命令输出 for k in range(len(cli_commands)): net_connect.send_command(cli_commands[k])
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
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)
您必须
.split(',')
每个字符串才能得到一个嵌套列表,然后使其简单化。使用.split()
可删除每个子字符串开头和结尾处的额外空格
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]
第一行将_列表中的每个字符串转换为一个映射生成器,该映射生成器在除以“,”
字符后将.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())
绝对毁灭的回答是正确的,但你必须这样使用它
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)
查找Strings的.split()
方法感谢您的帮助,我得到了答案。