Как распечатать элементы списка, содержащиеся в словаре, используя цикл for - PullRequest
0 голосов
/ 02 января 2019

У меня есть словарь:

FFA = {'House': ['0.511', '0.374', 10], 'Chair': ['0.704', '0.381', 10], 'Shoe': ['0.922', '0.465', 10], 'Bottle': ['0.764', '0.348', 10], 'Face': ['1.084', '0.373', 10]}

Я хочу напечатать определенные элементы в цикле for:

print "ROI", "Cope", "Mean", "Stddev", "Nsamples"
for k in FFA:
    print "FFA", k, elem[0], elem[1], elem[2]

Вот мой вывод:

 ROI Cope Mean Stddev Nsamples
FFA House 1.084 0.373 10
FFA Chair 1.084 0.373 10
FFA Shoe 1.084 0.373 10
FFA Bottle 1.084 0.373 10
FFA Face 1.084 0.373 10

Тем не менее, мой код настолько неверен, что я не могу найти способ перебора всех ключей в файле dic, поэтому выводятся правильные значения.

Я хочу, чтобы мой вывод был:

ROI Cope Mean Stddev Nsamples
FFA House 0.511 0.374 10
FFA Chair 0.704 0.381 10
FFA Shoe  0.922 0.465 10
FFA Bottle 0.764 0.348 10
FFA Face 1.084 0.373 10

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Вы были близки:

print "ROI", "Cope", "Mean", "Stddev", "Nsamples"
for k in FFA:
    elem = FFA[k]
    print "FFA", k, elem[0], elem[1], elem[2]

или напрямую:

print "ROI", "Cope", "Mean", "Stddev", "Nsamples"
for k in FFA:
    print "FFA", k, FFA[k][0], FFA[k][1], FFA[k][2]
0 голосов
/ 02 января 2019

Вы уже перебираете ключи, теперь вам просто нужно перебрать элементы значений:

FFA = {'House': ['0.511', '0.374', 10], 
       'Chair': ['0.704', '0.381', 10], 
       'Shoe': ['0.922', '0.465', 10], 
       'Bottle': ['0.764', '0.348', 10], 
      'Face': ['1.084', '0.373', 10]} 

print "ROI", "Cope", "Mean", "Stddev", "Nsamples"


for k in FFA:      # loop over keys in dict 
    print "FFA", k,     # , at end == no newline
    for elem in FFA[k]: # loop over values in list of key
        print elem,         # , at end == no newline
    print               # now a newline

Выход:

ROI Cope Mean Stddev Nsamples
FFA House 0.511 0.374 10
FFA Chair 0.704 0.381 10
FFA Shoe 0.922 0.465 10
FFA Bottle 0.764 0.348 10
0 голосов
/ 02 января 2019

Используйте items() для перебора ключей и значений.Поскольку у вас есть несколько значений, перебирайте значения, используя вложенный цикл for для нескольких значений.Для python 2.x это будет print "FFA", k, values,

print "ROI", "Cope", "Mean", "Stddev", "Nsamples" # Header

for k, v in FFA.items():
    # print ("FFA", k,  end=" ") # For python 3.x
    print "FFA", k,
    for values in v:
        print values,
        # print (values, end=" ") # For python 3.x
    print # To get to print to the new line
    # print ()  # For python 3.x

ROI Cope Mean Stddev Nsamples
FFA House 0.511 0.374 10 
FFA Chair 0.704 0.381 10 
FFA Shoe 0.922 0.465 10 
FFA Bottle 0.764 0.348 10 
FFA Face 1.084 0.373 10 
...