Python3:动态拆分多个变量

Python3: Split multiple variables dynamically

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

次要背景故事:我正在使用 paramiko 通过 SSH 连接到网络交换机以获取 VLAN 信息。尝试为每个 VLAN 名称创建一个新变量,然后将所有变量呈现回列表中,供用户 select 来自。

#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##' 然后删除 space 之后的所有内容?我也可能做错了。我几周前才开始使用 python。

这可能对你有用。

VLAN_clean = [v[0:v.find(' ')] for v in VLANList if v.find(' ') != -1]

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 将在第一个 space 字符处拆分每个字符串,returning 一个值元组。如果没有空格,它将只是 return 一个包含整个字符串的长度为 1 的元组。因此,运行 拆分每个项目,然后从生成的元组中选择第一个项目给你正确的东西。