嘿伙计们,所以我设置了 2 个字典,它们的键相同,但两者的值不同。我试图让代码像这样打印出来
位数 % 1 2 3 4 5 6 7 8 9
count 是 countList,% 是 numFreq 值,它们的数字也分别在 Count 和 % 中下降。
好的,所以数据文件看起来像这样(只做一些数字,因为文件很大
人口普查数据 阿拉巴马州温菲尔德 4534 阿拉巴马州林地 208 阿拉巴马州伍德斯托克 1081 阿拉巴马州伍德维尔 743 阿拉巴马州黄崖 175 阿拉巴马州约克 2477 阿拉斯加阿达克 361
计数是数字的第一位数字的出现次数。我基本上把每一行都变成了一个列表,并将列表的最后一个值(数字)附加到一个新列表中。因此,我计算了 1, 2, 3, 4, 5, 6 , 7, 8 ,9 出现的次数。这就是 countList 所代表的。所以我将它存储在字典中,键是数字,计数是值。% 是计数的相对频率。所以我建立了一个新列表并计算了相对频率,基本上是计数+所有计数的总和,并将其四舍五入到一位数。% 列具有每个数字的相对计数。我把它放入字典中,其中的键是数字 1、2、3、4、5、6、7、8、9。所以现在我只需要将这些数字打印到 3 列中,
到目前为止,这是我的代码
def main():
num_freq = {}
pop_num = []
inFile = open ("Census__2008.txt", "r")
count = 0
for line in inFile:
if (count == 0):
count += 1
continue
else:
count += 1
line = line.strip()
word_list = line.split()
pop_num.append (word_list[-1])
counts = {}
for x in pop_num:
k = str(x)[0]
counts.setdefault(k, 0)
counts[k] += 1
countList = [counts[str(i)] for i in range(1,10)]
sumList = sum(countList)
dictCount = {}
dictCount[1] = countList[0]
dictCount[2] = countList[1]
dictCount[3] = countList[2]
dictCount[4] = countList[3]
dictCount[5] = countList[4]
dictCount[6] = countList[5]
dictCount[7] = countList[6]
dictCount[8] = countList[7]
dictCount[9] = countList[8]
num_Freq = []
for elm in countList:
rel_Freq = 0
rel_Freq = rel_Freq + ((elm / sumList) * 100.0)
rel_Freq = round(rel_Freq, 1)
num_Freq.append(rel_Freq)
freqCount = {}
freqCount[1] = num_Freq[0]
freqCount[2] = num_Freq[1]
freqCount[3] = num_Freq[2]
freqCount[4] = num_Freq[3]
freqCount[5] = num_Freq[4]
freqCount[6] = num_Freq[5]
freqCount[7] = num_Freq[6]
freqCount[8] = num_Freq[7]
freqCount[9] = num_Freq[8]
print ("Digit" " ", "Count", " ", "%")
print (
main()