You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何拆分嵌套列表中UDP/TCP组合值并转换协议名大小写

问题分析

现有代码存在两处核心问题:

  • 处理UDP/TCP组合值时,仅对同一列表位置重复赋值,最终只会保留最后一次写入的tcp,无法生成两个独立的列表项
  • 直接遍历原列表并修改列表结构容易引发遍历偏移异常,更稳妥的方式是新建列表存储处理后的数据
实现代码
lst = [['IP Address 1','TCP'], ['IP Address 2 ','UDP'],['IP Address 3','UDP/TCP']]
res = []
for ip, proto in lst:
    # 拆分协议字段后逐个转小写,生成新条目
    for single_proto in proto.split('/'):
        res.append([ip, single_proto.lower()])
print(res)
逻辑说明
  • 初始化空列表res存储最终处理结果,避免修改原列表引发异常
  • 对每一项的协议字段统一用/拆分,单个协议也会被拆为只有一个元素的列表,不需要单独写分支判断协议类型
  • 拆分后的每个协议字符串统一转小写后,和对应IP拼接为新的子项加入结果列表
  • 该逻辑适配任意用/拼接的多协议组合,后续新增协议类型也无需修改判断分支
运行输出

运行后输出完全匹配预期效果:
[['IP Address 1', 'tcp'], ['IP Address 2 ', 'udp'], ['IP Address 3', 'udp'], ['IP Address 3', 'tcp']]

内容的提问来源于stack exchange,提问作者Deyaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:36:02