2015-02-19 2 views
-1

Так я есть (ниже), который очищает мой списокКак бы напечатать вещи из словаря по строкам?

def cleanGpaList(gpalist): 
    mylist = [] 
    for i in gpalist: 
     b = i.strip() 
     c = b.split() 
     mylist.append(c) 
    return mylist 

А (ниже), который суммирует значения ключей, которые повторяются. Например [ 'Bob', '1,0'] и [ 'Bob', '2.1'] и дает мне [ 'Bob', '3.1']

def dictGpa(cleanList): 
    diction = {} 
    for item in cleanList: 
     if item[0] in diction: 
      diction[item[0]] += float(item[1]) 
     else: 
      diction[item[0]] = float(item[1]) 
    diction2 = ', '.join(map(str,diction.keys())) 
    return (diction2) 

Сейчас я пытаюсь написать окончательную функцию, печатает из словаря строку за строкой, а также ключи и значения.

'Bob' '3.1' 
'xname' 'xnumber' 

У меня есть, но это продолжает давать мне TypeError: строковые индексы должны быть целыми

def printCumulative(myDict): 
    for x in myDict: 
     print(x) 
     for y in myDict[x]: 
      print(y,' ',myDict[x][y]) 

ответ

0

Чтобы напечатать ключи и значения, которые можно использовать просто для:

for k,v in myDict.items(): 
    print(k,v) 
+0

Для обоих ответов Я получаю: AttributeError: объект 'str' не имеет атрибутов 'items'. –

+0

это означает, что 'myDict' не словарь. Вы должны переписать его каким-то образом с помощью строки. – Marcin