gpt4 book ai didi

python - 修改原始列表直到找到一个字符串

转载 作者:行者123 更新时间:2023-12-04 15:10:27 26 4
gpt4 key购买 nike

我正在处理从之前的配置中收到的以下输出

['Te1/1/1', 'server', 'Ten', 'connected', 'trunk', 'full', '10G', '10Gbase-LR']  
['Te1/1/2', 'desc', 'connected', 'trunk', 'full', '10G', '10Gbase-LR']
['Gi1/2/1', 'desc', 'disabled', 'routed', 'full', '1000', 'No', 'Transceiver']
['Gi2/1/2', 'disabled', 'routed', 'full', '1000', 'No', 'Transceiver']
['Te2/2/1', 'server', 'notconnect', '301', 'full', '10G', '10Gbase-LR']
['Po120', 'notconnect', 'unassigned', 'auto', 'auto']
['Po121', 'notconnect', '1', 'auto', 'auto']

我想要的是从列表中删除任何字符串,直到找到除第一项之外的字符串“connected”或“disabled”或“notconnect”。

我试过以下配置:

regex_chk = re.compile("((?:not)*?connect(?:ed)*|disabled|)")

for item in items:
for i in item[1:]:
if i != regex_chk:
item.remove(i)
print(item)

结果如下:

['Te1/1/1']
['Te1/1/2']
['Gi1/2/1']
['Gi2/1/2']
['Te2/2/1']
['Po120']
['Po121']

而我想要的结果是

['Te1/1/1', 'connected', 'trunk', 'full', '10G', '10Gbase-LR']  
['Te1/1/2', 'connected', 'trunk', 'full', '10G', '10Gbase-LR']
['Gi1/2/1', 'disabled', 'routed', 'full', '1000', 'No', 'Transceiver']
['Gi2/1/2', 'disabled', 'routed', 'full', '1000', 'No', 'Transceiver']
['Te2/2/1', 'notconnect', '301', 'full', '10G', '10Gbase-LR']
['Po120', 'notconnect', 'unassigned', 'auto', 'auto']
['Po121', 'notconnect', '1', 'auto', 'auto']

最佳答案

首先,您应该更改正则表达式模式。
第二,当你得到一场比赛时就休息。

for i in item[1:]:
if re.match("((?:not)*?connect(?:ed)*|disabled)", i):
break
else:
item.remove(i)

关于python - 修改原始列表直到找到一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65273556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com