Python3:动态拆分多个变量

2024-10-04 07:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试拆分多个由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##”,然后删除空间后的所有内容?我可能也做错了。我几周前刚开始使用python。你知道吗


Tags: ofinparamiko内容forthissplit动态创建
2条回答

这也许对你有用。你知道吗

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将在第一个空格字符处拆分每个字符串,返回一个值元组。如果没有空白,它将只返回一个长度为1的元组,其中包含整个字符串。因此,对每个项运行split,然后从结果元组中选择第一个项,就可以得到正确的结果。你知道吗

相关问题 更多 >