2016-06-14 132 views
0

我做我的功課 但是當我試圖用字典來算的數字,我發現我無法從列表中得到準確值...如何從字典中獲得價值..?

def get_data(openfile): 
    totalcount = 0 
    digit_count = {d:0 for d in '123456789'} 
    for line in openfile: 
     line = line.strip() 
     if int(line[0]) != 0 and line[0].isdigit(): 
      first_digit = line[0] 
      totalcount += 1 
      digit_count[first_digit] += 1 
    print(digit_count) 
    contents = [] 
    for data in digit_count: 
     contents.append(data) 
    print(contents) 

然後我用的打印,看看是什麼'digit_count'和'內容'。

在DIGIT_COUNT

{ '5':89, '3':203, '7':79, '8':77, '1':500, '9':69 , '2':304, '6':70, '4':140}

在內容

[ '5', '3', '7',' 8','1','9','2','6','4']

是否可以通過digit_count獲得計數值? 有什麼想法? 數字我想如89,203,79 ...

+0

你問如何獲得'[ '5', '3', '7',...]'從字典' {'5':89,'3':203,'7':79 ...}'? – Anonymous

+1

我不是100%確定你在問什麼,但是你可能想看看如何正確地迭代字典。 – user2027202827

+0

你應該看看在Python中使用'Counter'對象 –

回答

0

改變你的代碼:

for data in digit_count: 
      contents.append(digit_count[data]) 
+0

你可以打印出digit_count的值。沒有理由創建不必要的列表 –

+0

@ cricket_007你是對的。我只是稍微修改他的代碼。 –

1

你想從你的字典中的值;只需使用.values()方法。

vals = digit_count.values() 
0

取而代之的是:

for data in digit_count: 
    contents.append(data) 

您可以使用:

contents = digit_count.values() 
0

打印鍵

digit_count.keys() 

打印值

digit_count.values() 
0

更換

contents = [] 
    for data in digit_count: 
     contents.append(data) 
    print(contents) 

contents = dict(digit_count.items()) 
    print(contents)