@INTERNALINTERFERENCE

Как отформатировать вывод value словаря в python?

у меня есть словарь и функция, которая наполняет это словарь:

dict = {}

def write_to_file_analyzed_data():
    for key, v in client.lst:
        if key not in dict:
            dict[key] = [0, 0, float('inf'), float('inf')]
        dict[key][0] += 1
        dict[key][1] = max(dict[key][1], v)
        dict[key][2] = min(dict[key][2], v)
        dict[key][3] = (dict[key][1] + dict[key][2]) / 2


затем я пытаюсь отформатировать:
print("\n".join("{}|{}".format(k, v) for k, v in dict.items()))


но получается не совсем то, что нужно
я ожидаю такое:
/event/00:00:10|135|211|207|209.0

но получается только вот так:
event/00:00:10|[9, 211, 211, 211.0]

подскажите, пожалуйста, как отформатировать items правильно?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
drygdryg
@drygdryg
Python-разработчик
Вам нужно отдельно соединять списки v в строки, прежде чем передавать их в str.format():
my_dict = {'example': [1, 2, 3]}
lines = ['{}|{}'.format(k, '|'.join(map(str, v))) for k, v in my_dict.items()]
print('\n'.join(lines))

Результат:
example|1|2|3
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы