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

如何统计文本文件中列表各列数字的出现次数并按要求输出?

解决按列统计数字出现次数的问题

问题描述

我有一个txt文件,内容如下:

[1, 2, 1]
[2, 1, 3]
[3, 2, 3]

想要分别统计每一列中数字1、2、3的出现次数,并按如下格式输出结果:

  1. Column
    1 Result : 1
    2 Result : 1
    3 Result : 1

  1. Column
    1 Result : 1
    2 Result : 2
    3 Result : 0

但尝试了多种循环写法未能实现,我的Python代码如下:

from ast import literal_eval
count = 0
first = 0
second = 0
third = 0
with open("data.txt") as f:
    matrix = []
    for line in f:
        row = literal_eval(line)
        matrix.append(row)

print(matrix)
print(len(matrix))
print("-----------")
for i in matrix:
    for j in range(3):

        if i[j] == 1:
            first += 1
        elif i[j] == 2:
            second += 1
        elif i[j] == 3:
            third += 1

    print(f"1. Result {first}")
    print(f"2. Result {second}")
    print(f"3. Result {third}")
    print(f"----")

代码问题分析

你的代码目前是按行累加统计所有元素的总数,没有实现按列统计的核心逻辑:

  • 每次循环行时,会把当前行的三个列元素都加到同一个计数器里,导致统计的是从第一行到当前行的所有1、2、3的总数,而非单列数据。
  • 没有对每一列单独初始化计数器,也没有按列维度去遍历数据。

解决方案

要实现按列统计,首先需要把矩阵转置(行变列),这样每一个子列表就对应原矩阵的一列。然后对每一列单独统计1、2、3的出现次数,最后按要求格式输出。

修改后的代码如下:

from ast import literal_eval

# 读取文件构建矩阵
with open("data.txt") as f:
    matrix = [literal_eval(line.strip()) for line in f]

# 转置矩阵:行变列,每个元组对应原矩阵的一列
transposed = list(zip(*matrix))

# 遍历每一列,统计数字出现次数
for col_idx, column in enumerate(transposed, start=1):
    # 直接统计当前列中各数字的出现次数
    count_1 = column.count(1)
    count_2 = column.count(2)
    count_3 = column.count(3)
    
    # 按要求格式输出
    print(f"{col_idx}. Column")
    print(f"1 Result : {count_1}")
    print(f"2 Result : {count_2}")
    print(f"3 Result : {count_3}")
    # 除最后一列外,打印分隔线
    if col_idx != len(transposed):
        print("---")

代码说明

  1. 转置矩阵:zip(*matrix)可以快速将原矩阵的行转换为列,比如原矩阵[[1,2,1],[2,1,3],[3,2,3]]转置后得到[(1,2,3), (2,1,2), (1,3,3)],每个元组对应原矩阵的一列。
  2. 统计次数:利用元组的count()方法直接统计当前列中1、2、3的出现次数,简洁高效。
  3. 格式输出:通过enumerate获取列的索引(从1开始),按要求格式打印每列的统计结果,最后一列不打印分隔线。

运行这段代码后,就能得到你想要的输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:40:31