[此处第一篇文章,因此对于任何违反礼节的行为表示歉意。这个站点对我有很大的帮助,为此,谢谢!!
我有一个正在运行for循环的字符串列表。逻辑一直没有问题,但是我必须添加一个新的第一条IF语句来检查其中的字符串长于特定长度的索引。即使某些长度显示的长度超过60,我似乎也无法使该语句匹配。在这里我在做什么错?
这里是代码:
for idx, x in enumerate(final_vlan_list_build2): length = len(final_vlan_list_build2[idx]) print(length) print(type(length)) if length >= 60: final_vlan_list_build2[idx] = final_vlan_list_build2[idx].replace( final_vlan_list_build2[idx], final_vlan_list_build2[idx] + " default 1 none qtagged") elif 'qtagged' in x: final_vlan_list_build2[idx] = final_vlan_list_build2[idx] elif 'qtagged' and 'default' not in x: final_vlan_list_build2[idx] = final_vlan_list_build2[idx].replace( final_vlan_list_build2[idx], final_vlan_list_build2[idx] + " default 1 none qtagged") else: final_vlan_list_build2[idx] = final_vlan_list_build2[idx].replace( final_vlan_list_build2[idx], (final_vlan_list_build2[idx] + ' none qtagged')) print(final_vlan_list_build2)
仅供参考,每个索引的长度肯定显示超过60:
10
<class 'int'>
10
<class 'int'>
32
<class 'int'>
32
<class 'int'>
50
<class 'int'>
30
<class 'int'>
32
<class 'int'>
76
<class 'int'>
54
<class 'int'>
33
<class 'int'>
55
<class 'int'>
77
<class 'int'>
31
<class 'int'>
33
<class 'int'>
33
<class 'int'>
31
<class 'int'>
71
<class 'int'>
31
Partial input list:
['int g1/0/1', 'int g1/0/2', 'int g1/0/3 3999 default ', 'int g1/0/4 3999 default ', 'int g1/0/5 261 qtagged
368 default ', 'int g1/0/6 368 default ', 'int g1/0/7 3999 default ', 'int g1/0/8 258 qtagged 261
qtagged 3999 default ', 'int g1/0/9 261 qtagged 3999 default ', 'int g1/0/10 368 default ', 'int g1/0/11 261 qtagged 3999 default ', 'int g1/0/12 258 qtagged 261 qtagged 3999 default
', 'int g1/0/13 367 default ', 'int g1/0/14 3999 default ', 'int g
...
The partial output list:
['int g1/0/1 default 1 none qtagged', 'int g1/0/2 default 1 none qtagged', 'int g1/0/3 3999 default none qtagged', 'int g1/0/4 3999 default none qtagged', 'int g1/0/5 261 qtagged 368 default ', 'int g1/0/6
368 default none qtagged', 'int g1/0/7 3999 default none qtagged', 'int g1/0/8 258 qtagged 261 qtagged 3999 default default 1 none qtagged', 'int g1/0/9 261 qtagged 3999 default ', 'int g1/0/10 368 default none qtagged', 'int g1/0/11 261 qtagged 3999 default ', 'int g1/0/12 258 qtagged 261 qtagged 3999 default default 1 none qtagged',
.....
[此处第一篇文章,因此对于任何违反礼节的行为表示歉意。这个网站对我有很大的帮助,为此,谢谢!我有一个正在运行for循环的字符串列表。 ...
您的问题不是因为如果长度> 60,并且如果x中没有'qtagged'和'default',您将执行相同的操作吗?所以您的结果不是因为长度而是因为if'qtagged'和'default'不在x ... ...>
很抱歉,如果这很烂,但是您的代码确实很难阅读。这是同一件事,但有2处更改。首先,如果长度大于60,则将其替换为“ default 1 none qtagged”;其次,我将逻辑'qtagged' and 'default' not in x
替换为'qtagged' not in x and 'default' not in x
,因为这是我假设您要尝试的做法。