【问题标题】:python replace dictionary value with its extensionpython用它的扩展名替换字典值
【发布时间】:2021-06-30 22:07:44
【问题描述】:

如何使用 python 将字典值替换为其扩展名?即用“以太网”替换“Eth”?

{'Po1': ['Eth1/2', 'Eth1/3', 'Eth2/3', 'Eth3/3'], 'Po2': ['Eth2/2', 'Eth2/5'], 'Po201': ['Eth1/1']}

输出:

{'Po1': ['Ethernet1/2', 'Ethernet1/3', 'Ethernet2/3', 'Ethernet3/3'], 'Po2': ['Ethernet2/2', 'Ethernet2/5'], 'Po201': ['Ethernet1/1']}

【问题讨论】:

  • 迭代您的字典中包含的列表中给出的字符串。对于每个字符串,调用replace()
  • 谢谢。你能举个例子吗?

标签: python-2.7 dictionary


【解决方案1】:
d = {'Po1': ['Eth1/2', 'Eth1/3', 'Eth2/3', 'Eth3/3'], 'Po2': ['Eth2/2', 'Eth2/5'], 'Po201': ['Eth1/1']}


out = {}
for key, value in d.items():
    l = []
    for string in value:
        l.append(string.replace('Eth', 'Ethernet'))
    out[key] = l
print(out)


# the above can be re-written using comprehensions
out = {}
for key, value in d.items():
    out[key] = [string.replace('Eth', 'Ethernet') for string in value]
print(out)


# the above can be re-written using nested comprehensions
out = {k: [s.replace('Eth', 'Ethernet') for s in v] for k, v in d.items()}
print(out)

印刷:

{'Po1': ['Ethernet1/2', 'Ethernet1/3', 'Ethernet2/3', 'Ethernet3/3'], 'Po2': ['Ethernet2/2', 'Ethernet2/5'], 'Po201': ['Ethernet1/1']}
{'Po1': ['Ethernet1/2', 'Ethernet1/3', 'Ethernet2/3', 'Ethernet3/3'], 'Po2': ['Ethernet2/2', 'Ethernet2/5'], 'Po201': ['Ethernet1/1']}
{'Po1': ['Ethernet1/2', 'Ethernet1/3', 'Ethernet2/3', 'Ethernet3/3'], 'Po2': ['Ethernet2/2', 'Ethernet2/5'], 'Po201': ['Ethernet1/1']}

【讨论】:

    【解决方案2】:

    可以在列表中就地修改字符串。遍历字典值,然后是列表,然后在每个列表位置重新分配字符串。如果你不熟悉enumerate,它会返回一个可迭代对象的每个元素的索引和值。

    >>> d = {'Po1': ['Eth1/2', 'Eth1/3', 'Eth2/3', 'Eth3/3'], 'Po2': ['Eth2/2', 'Eth2/5'], 'Po201': ['Eth1/1']}
    >>> for v in d.values():
    ...     for i,s in enumerate(v):
    ...         v[i] = s.replace('Eth','Ethernet')
    ...         
    >>> d
    {'Po1': ['Ethernet1/2', 'Ethernet1/3', 'Ethernet2/3', 'Ethernet3/3'], 'Po2': ['Ethernet2/2', 'Ethernet2/5'], 'Po201': ['Ethernet1/1']}
    

    【讨论】:

      猜你喜欢
      • 2013-11-15
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      相关资源
      最近更新 更多