我有一个活动的获奖者名单。我想在我的代码末尾打印出来,减去括号和引号,我目前正在使用:
for items in winners:
print(items)
我可以在打印声明中包含这个吗? 我想要:
print("The winners of {} were: {} with a score of {}".format(sport, winners, max_result))
有没有办法将for循环集成到print语句中,或者是另一种消除引号和方括号的方法,以便我可以将它包含在语句中?
感谢。
答案 0 :(得分:6)
您不能包含for循环,但您可以将获胜者列表加入字符串。
winners = ['Foo', 'Bar', 'Baz']
print('the winners were {}.'.format(', '.join(winners)))
这会打印
获胜者是Foo,Bar,Baz。
答案 1 :(得分:0)
如果def header(request):
return render_to_response (request, 'blog/header.html')
是字符串列表,您可以使用winners
连接它们。
例如:
str.join
因此,您可以将>>> winners = ['John', 'Jack', 'Jill']
>>> ', '.join(winners)
'John, Jack, Jill'
放入打印电话而非', '.join(winners)
,然后打印以逗号分隔的获胜者。
答案 2 :(得分:0)
for循环只能以理解的形式提供给print
。
但是,如果列表内容按照您要求的相应顺序,您只需执行以下操作:
print("The winners of {} were: {} with a score of {}".format(*winners))
这只是将每个括号与列表中的每个项目匹配。如果您需要以不同方式订购,您只需提供相对位置:
print("The winners of {1} were: {0} with a score of {2}".format(*winners))
答案 3 :(得分:0)
首先请注意,在Python 3中print
是一个函数,但它是Python 2中的一个语句。此外,您不能使用for
语句作为参数。
只有这样奇怪的解决方案出现在我的脑海中,它看起来只是一个for循环:
data = ['Hockey','Swiss', '3']
print("Sport is {}, winner is {}, score is {}".format(*( _ for _ in data )))
当然,因为print
是一个函数,你可以用你需要的所有东西编写自己的函数,例如:
def my_print(pattern, *data):
print(pattern.format(*( _ for _ in data)))
my_print("Sport is {}, winner is {}, score is {}", 'Hockey', 'Swiss', '3')
您还可以阅读将在Python 3.6中引入的 f-strings "Literal String Interpolation" PEP 498。这个f字符串将提供一种方法,使用最小的语法将表达式嵌入到字符串文字中。