首页 > 解决方案 > 使用 re.sub() 遍历列表

问题描述

我正在尝试用长格式名称替换列表中的值。

value_list = ['Gi1/0/8', 'Gi1/0/31', 'Gi1/0/32', 'Gi1/0/33', 'Gi1/0/34', 'Gi1/0/23', 'Gi1/0/27']

我正在运行以下脚本:

for value in value_list:
    value = re.sub(r'Gi', 'GigabitEthernet', value)
    print value
print value_list

这是我的输出:

GigabitEthernet1/0/8
GigabitEthernet1/0/31
GigabitEthernet1/0/32
GigabitEthernet1/0/33
GigabitEthernet1/0/34
GigabitEthernet1/0/23
GigabitEthernet1/0/27

我只需要更改列表中的值,似乎都做错了。谁能帮助我以有效的方式做到这一点,所以我不需要从各个输出中创建另一个列表?

标签: python

解决方案


然后改用列表推导:

print([re.sub(r'Gi', 'GigabitEthernet', value) for value in value_list])

输出:

['GigabitEthernet1/0/8', 'GigabitEthernet1/0/31', 'GigabitEthernet1/0/32', 'GigabitEthernet1/0/33', 'GigabitEthernet1/0/34', 'GigabitEthernet1/0/23', 'GigabitEthernet1/0/27']

推荐阅读