返回一个元组作为参数传递给string.format()函数。

36

目前,我正在尝试编写一种Python方法,该方法返回零个、一个或两个字符串的列表,以便将它们插入到字符串格式化程序中,然后将它们传递给字符串方法。我的代码大致如下:

class PairEvaluator(HandEvaluator):
  def returnArbitrary(self):
    return ('ace', 'king')

pe = PairEvaluator()
cards = pe.returnArbitrary()
print('Two pair, {0}s and {1}s'.format(cards))
当我尝试运行这段代码时,编译器会报IndexError:元组索引超出范围。
我该如何构造返回值以将其作为参数传递给.format()
3个回答

86
print('Two pair, {0}s and {1}s'.format(*cards))

你只缺少最后一个星星 :D


5
太棒了。在这个上下文中,* 运算符的定义是什么? - Yes - that Jake.
18
它会展开元组,例如从“(a, b, c)”变为“a, b, c”。 - Nikhil
非常感谢!这是一种更简单的方法,帮了很多忙。 - Hsinhsin Hung

5

1

这尝试使用“卡片”作为单一格式输入进行打印,而不是卡片的内容。

尝试类似以下的操作:

print('Two pair, %ss and %ss' % cards)

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