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

如何纵向统计R之后连续的P字符序列数量?

纵向统计连续P的实现逻辑梳理

核心思路

先定位唯一的"R",再沿其所在列向下遍历,统计连续出现的"P"数量,直到遇到非"P"字符或表格末尾为止。

分步实现步骤

  1. 定位"R"的位置
    遍历表格的所有单元格,找到值为"R"的单元格,记录它的行号和列号(因为是纵向统计,后续只需要在同一列向下遍历)。

  2. 统计下方连续的"P"

    • 初始化计数器为0
    • 从"R"所在行的下一行开始,逐个检查同列的单元格:
      • 若单元格值为"P",计数器加1,继续向下检查
      • 若遇到非"P"字符,立即停止遍历
      • 若遍历到表格底部全部是"P",则将所有后续的"P"计入总数
  3. 输出结果
    最终计数器的数值就是需要的统计结果

示例验证

示例1:纵向序列为 R → P → P → L

  • R在第1行,从第2行开始检查:第2行是P(计数器=1),第3行是P(计数器=2),第4行是L,停止遍历。输出结果为2
    示例2:纵向序列为 R → P → P → P → P → L
  • 从R下一行开始连续遇到4个P,第6行是L,停止遍历。输出结果为4

不同场景的落地方案参考

Excel环境

  1. 假设"R"在A列,先用MATCH("R", A:A, 0)获取R所在的行号(记为ROW_R)
  2. 统计连续P的数量:
    • 若后续存在非P字符:COUNTIF(INDIRECT("A"&(ROW_R+1)&":A"&MATCH("<>P", A:A, 0)-1), "P")
    • 若到表格末尾全是P:COUNTA(A:A)-ROW_R

Python处理二维表格数据

假设表格数据是二维列表table,示例代码如下:

# 定位R的位置
r_row, r_col = None, None
for i, row in enumerate(table):
    for j, val in enumerate(row):
        if val == 'R':
            r_row, r_col = i, j
            break
    if r_row is not None:
        break

# 统计连续P的数量
count = 0
current_row = r_row + 1
while current_row < len(table):
    cell_val = table[current_row][r_col]
    if cell_val == 'P':
        count += 1
        current_row += 1
    else:
        break

print(count)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:47:10