我正在制作一个简单的mad-libs esque代码,但我找不到更有效的方法来执行此操作。
print madlib1 % (madlib1_answers[0],madlib1_answers[1],madlib1_answers[2],madlib1_answers[3],madlib1_answers[4],madlib1_answers[5],madlib1_answers[6],madlib1_answers[7],madlib1_answers[8],madlib1_answers[9],madlib1_answers[10],madlib1_answers[11],madlib1_answers[12])
madlib1只是一个变量字符串,每个答案都有%s&s;而madlibs总共有13个答案。
答案 0 :(得分:4)
如果您切换为使用.format()
,则可以像这样展开madlib1_answers
:
print madlib1.format(*madlib1_answers)
这样可以让您使用format specification language。
一个警告,如果你的格式比你未格式化的字符串中的说明符多,它将丢弃任何额外的值。
答案 1 :(得分:2)
有很多方法可以做到这一点:
# If madlib1_answers is already a tuple with correct number of elements
print madlib1 % madlib1_answers
# If you need to crop the tuple:
print madlib1 % madlib1_answers[:13]
# If it's not a tuple yet
print madlib1 % tuple(madlib1_answers)