Python在一行上打印两件事

时间:2017-02-22 16:58:15

标签: python

我正在学习edx python课程。我在最后一次作业中做了一切。但是,我正在努力解决这个印刷问题。

我有一个函数hand={a:3, b:4, c:1} displayHand(hand)=a a a b b b b c ,它实际上是一个字典,其中键是字母,值是字母的出现次数。然后,该函数打印一个字符串,每个键的出现次数与其值相同。例如,如果

displayHand

现在在任何给定手牌的程序中,它希望我使用hand={a:3, b:4, c:1}函数显示文本"当前手牌:"

同样,如果程序显示current hand: a a a b b b b c

print("current hand"+str(displayHand(hand))

如何使用print语句执行此操作?我已经尝试了None,但这首先评估了该功能,然后只打印print("Current Hand: ")。我无法将displayHand(hand)[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] public class UnMappedAttribute : Attribute { } 直接放在下面,因为它们会在不同的行上打印。我需要让它们在同一条线上打印。

4 个答案:

答案 0 :(得分:4)

Python 3:

def displayHand(dct):
    for key, val in sorted(dct.items()):  # sorted if key order should be abc
        print((key + " ") * val, end="")


hand = {"a": 3, "b": 4, "c": 1}

print("current hand: ", end="")
displayHand(hand)

注意end=""附加""内的任何内容。默认设置为end="\n"。在这种情况下,我们将只使用一个空字符串。请参阅herehere

输出:

current hand: a a a b b b b c 

答案 1 :(得分:1)

那应该适合你:

print("current hand: ", end="")
displayHand(hand)

在print()函数中,默认结束是新行。在上面的代码中,您只需将其更改为您想要的任何内容。

答案 2 :(得分:0)

您可以使用打印两次,只需在第一次打印后添加逗号:print("a"), print("b")

答案 3 :(得分:0)

您可以执行以下操作:

def displayHand(hand):
    print('{} {}'.format('current hand:', ' '.join([' '.join([li] * ni) for li, ni in sorted(hand.items())])))

首先创建一个字符串,然后打印出来。

然后

displayHand(hand)

打印所需的输出:

current hand: a a a b b b b c