【问题标题】:get the result in 1 dict in the place of 2 dict用 1 dict 代替 2 dict 得到结果
【发布时间】:2021-06-07 10:09:13
【问题描述】:

我只想用 1 个 dict(结果)代替 2 个 dict(男性,女性),然后一切都正确地放入该 dict 中,然后我只打印它们。

谁能帮帮我,好吗?

import csv

males = {}
females = {}

with open('1000 Records.csv') as csv_file:
    csv_reader = csv.reader(csv_file)

    for row in csv_reader:
        year_of_joining = int(row[17])
        quarter_of_joining = row[15]
        gender = row[5]
        result = males if gender == 'M' else females

        if year_of_joining not in result:
            result[year_of_joining] = {f'Q{i + 1}': 0 for i in range(4)}

        result[year_of_joining][quarter_of_joining] += 1


years = list(males.keys()) + list(females.keys())
years = sorted(list(set(years)))

for year in years:
    count = [males.get(year, 0), females.get(year, 0)]
    print("People who join in H1 and H2: %s: %s" % (year, count))

【问题讨论】:

  • 那你为什么要用两个字典呢?只使用一个,不要过滤性别
  • 是的,我也想要,但我尝试我的代码不起作用,所以这就是我在这里的原因。如果你在这方面帮助我,我非常感激
  • 和过滤器很重要,因为我想分别检查男性和女性

标签: python csv dictionary count


【解决方案1】:

如果这是您想要实现的目标,请告诉我,因为这个问题对我来说并不完全清楚。

import csv


results={'males':{},'females':{}}

with open('1000 Records.csv') as csv_file:
    csv_reader = csv.reader(csv_file)

    for row in csv_reader:
        year_of_joining = int(row[17])
        quarter_of_joining = row[15]
        gender = 'males' if row[5] == 'M' else 'females'
        

        if year_of_joining not in results[gender]:
            results[gender][year_of_joining] = {f'Q{i + 1}': 0 for i in range(4)}
            
        results[gender][year_of_joining][quarter_of_joining] += 1


years = list(results['males'].keys()) + list(results['females'].keys())
years = sorted(list(set(years)))

for year in years:
    count = [results['males'].get(year, 0), results['females'].get(year, 0)]
    print("People who join in H1 and H2: %s: %s" % (year, count))

【讨论】:

  • 谢谢你,非常感谢。它的工作
  • 兄弟,如果我以这种方式更改代码会怎么样 results[year_of_joining][gender] = {f'Q{i + 1}': 0 for i in range(4)} results[year_of_joining][性别][quarter_of_joining] += 1 这样做后我得到错误键错误
  • @imhamza3333 请对此修改提出单独的问题并在此处粘贴链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 2023-01-20
  • 1970-01-01
  • 2013-08-04
  • 2021-06-07
  • 2021-08-09
相关资源
最近更新 更多