Это или даже более прохладное решение, использующее join
для объединения обоих элементов и (ключ, значение), избегая устаревшей теперь интерполяции %
, используя только одну фиктивную переменную _
и отбрасывая избыточное понимание списка:
"<br/>".join(":: ".join(_) for _ in mydict.items())
Имейте в виду, что у диктовок нет упорядочивания, поэтому без sorted()
вы можете не получить того, что хотите:также работает только тогда, когда все ключи и значения являются строками, в противном случае join
будет жаловаться.Более надежное решение было бы:
", ".join("=".join((str(k),str(v))) for k,v in mydict.items())
Теперь оно отлично работает, даже для ключей и значений смешанных типов:
>>> mydict = {'1':1, 2:'2', 3:3}
>>> ", ".join("=".join((str(k),str(v))) for k,v in mydict.items())
'2=2, 3=3, 1=1'
Конечно, для смешанных типов обычный sorted()
не будет работать, как ожидалось.Используйте его, только если вы знаете, что все ключи являются строками (или все числовые и т. Д.).В первом случае вы можете сбросить и первую str()
:
>>> mydict = dict(a=1, b=2, c=2)
>>> ", ".join("=".join((k,str(v))) for k,v in sorted(mydict.items()))
'a=1, b=2, c=3'