Python如何在一行中打印字典?

10

你好,我是一个刚开始学习Python的新手,我在如何打印字典方面遇到了困难。

我有一个如下所示的字典。

dictionary = {a:1,b:1,c:2}

如何像下面一样在一行中打印字典?
a1b1c2

我想在一行中打印键和值,但自己无法解决。
我将非常感激您的建议!

1
d = {'a':1,'b':1,'c':2}; "".join([k+str(v) for k,v in d.items()]) d = {'a':1,'b':1,'c':2}; "".join([k+str(v) for k,v in d.items()]) - alvas
3
请展示您的代码尝试,并解释您遇到的困难。 - idjaw
a、b和c是变量吗? - sisanared
@idjaw 我尝试了这样的代码。对于计数器中的每个元素 k, v,我使用 print("{0}{1}".format(k, v)) 进行输出。但是这段代码会将值打印在多行上。 - yusuke0426
@alvas 非常感谢!你的解决方案非常有效! - yusuke0426
要修复您自己的代码,您必须在打印方法中传递 end=''。https://docs.python.org/3/library/functions.html#print - idjaw
2个回答

16

使用字典,例如

dictionary = {'a':1,'b':1,'c':2}

您可以尝试:

print ''.join(['{0}{1}'.format(k, v) for k,v in dictionary.iteritems()])

导致结果为

a1c2b1

如果顺序很重要,可以尝试使用OrderedDict,如帖子所述。


return ' '.join(['{0}={1}'.format(k, v) for k,v in dictionary.iteritems()])``` - Alon Burg

6

如果你想让一个字符串包含答案,可以这样做:

>>> dictionary = {'a':1,'b':1,'c':2}
>>> result = "".join(str(key) + str(value) for key, value in dictionary.items())
>>> print(result)
c2b1a1

这里使用了在空字符串上调用join方法。由于字典无序,因此输出的顺序可能会有所不同。

更新 - 也可以使用f-strings实现:

>>> result = "".join(f"{key}{value}" for key, value in dictionary.items())

1
请注意,在Python 3.6中,字典现在是有序的(除非你经常对它们进行操作),因此在3.6+中输出的顺序将是确定的。 - Brad Campbell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接