Как распечатать ключ и значения из следующей коллекции? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть следующая коллекция со словарем:

 {'EHAM': [78, [55, 23]], 'EGLL': [67, [46, 21]], 'LOWW': [67, [44, 23]], 'LFPG': [75, [43, 32]]}

Я хочу напечатать коллекцию в следующем формате выходных данных:

 NAME    #TOTAL     #TK     #LA
 EHAM    78         55      23
 EGLL    67         46      21
 LOWW    67         44      23
 LFPG    75         43      32

Прямо сейчас я ' m получает следующий вывод:

#NAME #TOTAL #TK #LA
 EHAM [78, [55, 23]]
 EGLL [67, [46, 21]]
 LOWW [67, [44, 23]]
 LFPG [75, [43, 32]]

Это фрагмент кода, который я использую:

#print(topAirpots_dict)
print("\n#NAME"+ " #TOTAL"+ " #TK"+ " #LA\n")
for k in (top_dict):
    print(k,top_dict[k])

Ответы [ 3 ]

2 голосов
/ 20 февраля 2020

Если количество элементов в списке внутри значений словаря не изменяется, работает следующее решение.

print("\n#NAME"+ " #TOTAL"+ " #TK"+ " #LA\n")
for k in (top_dict):
    print(k, top_dict[k][0], top_dict[k][1][0], top_dict[k][1][1])
0 голосов
/ 20 февраля 2020

Это может быть полезно:

my_dict = {'EHAM': [78, [55, 23]], 'EGLL': [67, [46, 21]], 'LOWW': [67, [44, 23]], 'LFPG': [75, [43, 32]]}

print("NAME", "#TOTAL", "#TK", "#LA", sep="\t\t")
for k, item in my_dict.items():
    total, other = item
    tk, tl = other
    print(f"{k} {total:>10} {tk:>10} {tl:>7}")

Вывод:

NAME        #TOTAL      #TK     #LA
EHAM         78         55      23
EGLL         67         46      21
LOWW         67         44      23
LFPG         75         43      32

используется

форматирование строки -> [https://www.geeksforgeeks.org/python-format-function/] &

интерполяция строк -> [https://realpython.com/python-string-formatting/]

0 голосов
/ 20 февраля 2020

Может быть не самым эффективным способом, но дает желаемый результат:

print("\nNAME"+ " \t#TOTAL"+ " \t#TK"+ " \t#LA\n")
for k in (top_dict):
    first_val = top_dict[k][0]
    sec_val = top_dict[k][1][0]
    third_val = top_dict[k][1][1]
    print(k , " \t" , first_val , " \t" , sec_val , " \t" , third_val)

или быстрее, но немного сложнее для чтения:

print("\nNAME"+ " \t#TOTAL"+ " \t#TK"+ " \t#LA\n")
for k in (top_dict):
    print(k , " \t" , top_dict[k][0], " \t" , top_dict[k][1][0], " \t" , top_dict[k][1][1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...