列表理解中的字典理解
我有一个词典列表,我正在修改值。循环有一个按预期工作的。
show_mac = [{'mac': '0000.0000.0000', 'port': 'GigabitEthernet1/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'TenGigabitEthernet2/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'Port-channel1', 'type': 'dynamic', 'vlan': '1'}]
for d in show_mac:
for k, v in d.items():
d[k] = (
v.replace('TenGigabitEthernet', 'Te')
.replace('GigabitEthernet', 'Gi')
.replace('Port-channel', 'Po')
)
pprint(show_mac)
哪个产生了这一点:
[{'mac': '0000.0000.0000', 'port': 'Gi1/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'Te2/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'Po1', 'type': 'dynamic', 'vlan': '1'}]
我正在学习如何撰写综合,并且我正在尝试弄清楚如何在上述上使用上述来实现相同的结果?
I have a list of dictionaries, that I'm modifying values in. I have a for loop
that works as expected.
show_mac = [{'mac': '0000.0000.0000', 'port': 'GigabitEthernet1/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'TenGigabitEthernet2/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'Port-channel1', 'type': 'dynamic', 'vlan': '1'}]
for d in show_mac:
for k, v in d.items():
d[k] = (
v.replace('TenGigabitEthernet', 'Te')
.replace('GigabitEthernet', 'Gi')
.replace('Port-channel', 'Po')
)
pprint(show_mac)
Which produces this:
[{'mac': '0000.0000.0000', 'port': 'Gi1/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'Te2/1', 'type': 'dynamic', 'vlan': '1'},
{'mac': '0000.0000.0000', 'port': 'Po1', 'type': 'dynamic', 'vlan': '1'}]
I'm learning how to write comprehensions, and I'm trying to figure out how can I use list and dictionary comprehension on the above for loop
to achieve the same results?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
很难阅读/理解,但这有效:
It is hard to read/understand, but this works: