我正在学习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
{
}
直接放在下面,因为它们会在不同的行上打印。我需要让它们在同一条线上打印。
答案 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"
。在这种情况下,我们将只使用一个空字符串。请参阅here和here。
输出:
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