繁体   English   中英

如何在列表中分隔逗号分隔值以使其成为列表的单个值

[英]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.splitlist.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM