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

遍历单层嵌套列表,按子列表顺序用字母替换指定字符串'X'

替换嵌套列表中的'X'为顺序英文字母(子列表独立从'A'开始)

问题描述

我有一个单层嵌套列表xlist,结构如下(注:原代码中空值为示意,实际Python中需用None或其他合法占位符替代):

xlist = [[None, None, None, None, 'X', None, 'X', 'X', None, 'X', None], 
         ['X', None, None, 'X', None, 'X', 'X', 'X'], 
         [None, None, None, 'X', None, 'X', None, 'X', None, None, None, 'X']]

需求:将每个子列表中的'X'按出现顺序依次替换为英文字母,每个子列表从'A'开始独立计数,空值需保留以匹配其他列表结构,最终得到目标列表alist:

alist = [[None, None, None, None, 'A', None, 'B', 'C', None, 'D', None], 
         ['A', None, None, 'B', None, 'C', 'D', 'E'], 
         [None, None, None, 'A', None, 'B', None, 'C', None, None, None, 'D']]

解决方案

实现思路

  • 遍历外层列表的每个子列表
  • 为每个子列表单独维护计数器,记录当前替换的字母序号
  • 遍历子列表元素:遇到'X'则替换为对应英文字母,同时递增计数器;非'X'元素直接保留

Python 代码实现

xlist = [[None, None, None, None, 'X', None, 'X', 'X', None, 'X', None], 
         ['X', None, None, 'X', None, 'X', 'X', 'X'], 
         [None, None, None, 'X', None, 'X', None, 'X', None, None, None, 'X']]

alist = []
for sublist in xlist:
    char_count = 0
    new_sublist = []
    for item in sublist:
        if item == 'X':
            # 从'A'开始生成对应字母
            new_sublist.append(chr(ord('A') + char_count))
            char_count += 1
        else:
            new_sublist.append(item)
    alist.append(new_sublist)

# 验证结果
print(alist)

代码说明

  • ord('A')获取字母'A'的ASCII码值(65),加上计数器char_count后,用chr()转换为对应英文字母
  • 每个子列表的计数器独立初始化,确保每个子列表的替换都从'A'开始
  • 非'X'元素直接保留,完全维持原列表的结构和空值位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:25:19