Python3:动态拆分多个变量

时间:2018-01-26 14:58:56

标签: python network-programming

我尝试拆分多个在for循环中动态创建的变量,然后删除第一个空格后的所有变量。

小故事:我使用paramiko通过SSH连接网络交换机来提取VLAN信息。尝试为每个VLAN名称创建一个新变量,然后将所有变量返回到列表中供用户选择。

#VLANLines## were split from VLANList off \r\n. Variables created form a for loop
VLANLine1 = 'GGGGGGGGG      5                                        5/7'
VLANLine2 = 'HHHH           66                                       22/23'
VLANLine3 = 'SSSSSSS        33                                       3/4'

#HHHH and SSSSSS are random names I put in place for this question. This is the data I need to keep.

#Length of VLANList = 14 in this demo
i = 0
while i < len(VLANList):
    VLANLine[i].split(" ")
    del VLAN[i][1:]

错误

Traceback (most recent call last):
  File "<pyshell#16>", line 2, in <module>
    VLANLine[i].split(" ")
IndexError: string index out of range

如何动态拆分VLANLine ##&#39;然后删除空间后的所有内容?我也许会犯这个错误。几周前我刚开始使用python。

2 个答案:

答案 0 :(得分:0)

这可能适合你。

cumsum

答案 1 :(得分:0)

str.split干净利落地完成您的工作:

VLANList = [
        'GGGGGGGGG      5                                        5/7',
        'HHHH           66                                       22/23',
        'SSSSSSS        33                                       3/4',
    ]
VLAN_Clean = [v.split()[0] for v in VLANList]
print(VLAN_Clean)

输出:

['GGGGGGGGG', 'HHHH', 'SSSSSSS']

split将在第一个空格字符处拆分每个字符串,返回一个值元组。如果没有空白,它将只返回一个长度为1的元组,其中包含整个字符串。因此,在每个项目上运行拆分,然后从生成的元组中选择第一个项目可以为您提供正确的选择。