目前我只显示键,每个键在新行中:
'<br/>'.join(mydict)
如何将它们显示为key:: value,每个在新行中?
目前我只显示键,每个键在新行中:
'<br/>'.join(mydict)
如何将它们显示为key:: value,每个在新行中?
遍历 dict.items()
迭代器,它会产生一个键-值元组:
'<br/>'.join(['%s:: %s' % (key, value) for (key, value) in d.items()])
使用现代的f-string
符号进行更新:
'<br/>'.join([f'{key}:: {value}' for key, value in d.items()])
join
将两个元素和(键,值)对连接起来,避免现在已过时的%
插值,只使用一个虚拟变量_
,并删除冗余的列表推导式:"<br/>".join(":: ".join(_) for _ in mydict.items())
请注意字典是无序的,因此如果没有使用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'
sorted()
排序,最后一种期望统一的数据(和字符串键)。这完全取决于您的数据格式。 - MestreLion'<br/>'.join([f'{key}: {value}' for key, value in d.items()])
'<br/>'.join(map(':: '.join, mydict.items()))
'<br/>'.join(map(':: '.join, mydict.items()))
代码末尾缺少一个)
。 - L F我喜欢Filip Dupanović上面所做的事情。我使用str.format
方法将其修改为适用于Python3的代码。
'<br/>'.join(['{0}:: {1}'.format(key, value) for (key, value) in d.items()])
fieldpairs = ','.join(['{0} {1}'.format(key, value) for (key, value) in HiveTypes.items()])
'<br/>'.join(['{}:{}'.format(k, v) for k, v in d.items()])
- Greg Bray