2016-06-14 18 views
0

Ich mache meine Hausaufgaben aber wenn ich dict zu verwenden versucht, die Zahlen zu zählen, fand ich, dass ich nicht genau Wert aus der Liste bekommen ...Wie bekomme ich Wert vom Diktat?

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) 

Dann habe ich Druck, um zu sehen, was in ist die 'digit_count' und 'contents'.

im digit_count:

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

im Inhalt:

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

Ist das möglich, um die Zahlen von der Zahl zu erhalten? irgendwelche Ideen? Die Zahlen Ich will als 89,203,79 so bekommen ...

+0

Sie fragt, wie man '[ '5', '3', '7', ...] 'vom dict' {'5': 89, '3': 203, '7': 79 ...} '? – Anonymous

+1

Ich bin nicht 100% sicher, was Sie fragen, aber Sie möchten vielleicht prüfen, wie man über ein Wörterbuch richtig iteriert. – user2027202827

+0

Sie sollten auf jeden Fall das 'Counter' Objekt in Python verwenden. –

Antwort

0

ändern Sie Ihren Code:

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

Sie könnten einfach die Werte von digit_count ausdrucken. Kein Grund, die unnötige Liste zu erstellen –

+0

@ cricket_007 Sie haben Recht. Ich ändere einfach seinen Code ein wenig. –

1

Sie möchten die Werte aus dem Wörterbuch erhalten; Verwenden Sie einfach die .values() Methode.

vals = digit_count.values() 
0

Statt dessen:

for data in digit_count: 
    contents.append(data) 

Sie verwenden können:

contents = digit_count.values() 
0

Drucktaste

digit_count.keys() 

Druckwert

digit_count.values() 
0

ersetzen

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

mit

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