В настоящее время я показываю только ключи, каждый в новой строке:
'<br/>'.join(mydict)
как отображать их как key:: value, каждая в новой строке?
В настоящее время я показываю только ключи, каждый в новой строке:
'<br/>'.join(mydict)
как отображать их как key:: value, каждая в новой строке?
Пройдите через итератор dict.items()
, который даст ключ, значение tuple:
'<br/>'.join(['%s:: %s' % (key, value) for (key, value) in d.items()])
Это или еще более холодное решение, использующее join
для соединения обоих элементов и пар (ключ, значение), избегая теперь устаревшей интерполяции %
, используя только одну фиктивную переменную _
и отбрасывая избыточное понимание списка:
"<br/>".join(":: ".join(_) for _ in mydict.items())
Помните, что у dicts нет порядка, поэтому без sorted()
вы можете не получить то, что хотите:
>>> mydict = dict(a="A", b="B", c="C")
>>> ", ".join("=".join(_) for _ in mydict.items())
'a=A, c=C, b=B'
Это также работает, когда все клавиши и значения являются строками, иначе 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'
В python 3.6 я предпочитаю этот синтаксис, который делает код еще более удобочитаемым:
'<br/>'.join([f'{key}: {value}' for key, value in d.items()])
Мне понравилось то, что сделал Филип Дюпанович. Я изменил это как python3-ish с помощью метода str.format
.
'<br/>'.join(['{0}:: {1}'.format(key, value) for (key, value) in d.items()])
Я изменил приведенное выше, чтобы создать строку, которую я мог бы передать в инструкцию создания таблицы SQL.
fieldpairs = ','.join(['{0} {1}'.format(key, value) for (key, value) in HiveTypes.items()])
Если вы хотите быть более питоническим, мы можем полностью удалить for
-comprehension.
'<br/>'.join(map(':: '.join, mydict.items())