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

Python中不使用字典或Pandas实现嵌套列表按政党分组求和

手动实现按政党分组求和(不使用字典/Pandas)

嘿,这个需求很棒——手动实现分组统计能帮你彻底搞清楚底层逻辑,不用字典或者Pandas完全可行!我来一步步带你实现:

核心思路拆解

咱们不用现成工具的话,核心就是三个关键步骤:

  1. 先找出所有唯一的政党名称,避免重复统计
  2. 对每个政党,遍历原始列表,把对应县的票数逐个累加起来
  3. 最后把结果整理成清晰的对比表格

代码实现示例

先拿一组模拟数据来演示,你可以直接替换成自己的列表:

# 模拟的原始数据:[[county, political party, votes received]]
sample_data = [
    ["County A", "Democrat", 12000],
    ["County B", "Republican", 9500],
    ["County C", "Democrat", 15000],
    ["County D", "Independent", 3000],
    ["County E", "Republican", 11000]
]

# 步骤1:提取所有唯一的政党
unique_parties = []
for entry in sample_data:
    party = entry[1]
    if party not in unique_parties:
        unique_parties.append(party)

# 步骤2:逐个政党累加票数
vote_totals = []
for party in unique_parties:
    total_votes = 0
    for entry in sample_data:
        if entry[1] == party:
            total_votes += entry[2]
    vote_totals.append([party, total_votes])

# 步骤3:输出结果(也可以整理成表格)
print("各政党总票数统计:")
for result in vote_totals:
    print(f"{result[0]}: {result[1]} 票")

生成对比表格

如果要生成更直观的Markdown表格,咱们可以把vote_totals转化成表格格式:

政党名称总票数
Democrat27000
Republican20500
Independent3000

小优化:封装成函数

如果你的数据量比较大,或者需要重复使用,可以把逻辑封装成函数,更整洁:

def calculate_party_votes(data):
    # 提取唯一政党
    unique_parties = []
    for entry in data:
        party = entry[1]
        if party not in unique_parties:
            unique_parties.append(party)
    # 计算总票数(用生成器表达式简化累加逻辑)
    totals = []
    for party in unique_parties:
        total = sum(entry[2] for entry in data if entry[1] == party)
        totals.append([party, total])
    return totals

# 调用函数
final_results = calculate_party_votes(sample_data)

这个实现完全不依赖字典或者Pandas,纯靠基础的循环和条件判断就能完成,刚好符合你的需求~

内容的提问来源于stack exchange,提问作者New at programming

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:12:32