我是Python和编程的新手,需要一点这个(部分完成)函数的帮助。它调用的文本文件包含一串逗号分隔的数据行(年龄,工资,教育等)。但是,我从一开始就遇到了问题。我不知道如何返回结果。
我的目标是为每个类别以及要排序和统计的每一行创建字典。
e.g。 50人以上的100人,50岁以下的200人等等。
我在正确的球场吗?
file = "adultdata.txt"
def make_data(file):
try:
f = open(file, "r")
except IOError as e:
print(e)
return none
large_list = []
avg_age = 0
row_count_under50 = 0
row_count_over50 = 0
#create 2 dictionaries per category
employ_dict_under50 = {}
employ_dict_over50 = {}
for row in f:
edited_row = row.strip()
my_list = edited_row.split(",")
try:
#Age Category
my_list[0] = int(my_list[0])
#Work Category
if my_list[-1] == " <=50K":
if my_list[1] in employ_dict_under50:
employ_dict_under50[my_list[1]] += 1
else:
employ_dict_under50[my_list[1]] = 1
row_count_u50 += 1
else:
if my_list[1] in emp_dict_o50:
employ_dict_over50[my_list[1]] += 1
else:
employ_dict_over50[my_list[1]] = 1
row_count_o50 += 1
# Other categories here
print(my_list)
#print(large_list)
#return
# Ignored categories here - e.g. my_list[insert my list numbers here] = None
答案 0 :(得分:0)
我无权访问您的文件,但我已经纠正了您在代码中遇到的大多数错误。
这些是我在代码中发现的错误列表:
with
语句
你有一些与一般编程有关的非常基本的错误,我可以假设你的新手吗?如果是这样,那么你应该在线学习更多初学者教程,直到你掌握了执行基本任务所需的命令。
尝试将您的代码与此进行比较,看看您是否能理解我想说的内容:
file = "adultdata.txt"
large_list = []
avg_age = 0
row_count_under50 = 0
row_count_over50 = 0
#create 2 dictionaries per category
employ_dict_under50 = {}
employ_dict_over50 = {}
with open(file, "r") as f:
row = f.readline()
edited_row = row.strip()
my_list = edited_row.split(",")
#Age Category
my_list[0] = int(my_list[0])
#Work Category
if my_list[-1] == " <=50K":
if my_list[1] in employ_dict_under50:
employ_dict_under50[my_list[1]] += 1
else:
employ_dict_under50[my_list[1]] = 1
row_count_under50 += 1
else:
if my_list[1] in employ_dict_over50:
employ_dict_over50[my_list[1]] += 1
else:
employ_dict_over50[my_list[1]] = 1
row_count_over50 += 1
# Other categories here
print(my_list)
#print(large_list)
#return
我不能确定这段代码是否可以在没有你的档案的情况下运作,但它应该让你先行一步。