我正在使用Python并且希望能够创建一个数组,然后将值与特定格式的字符串连接起来。我希望下面能解释一下我的意思。
name_strings = ['Team 1', 'Team 2']
print "% posted a challenge to %s", %(name_strings)
name_strings
中的每个值都会放在%s
点。非常感谢任何帮助。
答案 0 :(得分:3)
删除,
:
print "% posted a challenge to %s", %(name_strings)
# ^
格式说明符不完整。将其替换为%s
。
print "% posted a challenge to %s" %(name_strings)
# ^
String formatting operation需要一个元组,而不是列表:将列表转换为元组。
name_strings = ['Team 1', 'Team 2']
print "%s posted a challenge to %s" % tuple(name_strings)
如果您使用的是Python 3.x,则应将print
作为函数形式调用:
print("%s posted a challenge to %s" % tuple(name_strings))
使用str.format
替代方案:
name_strings = ['Team 1', 'Team 2']
print("{0[0]} posted a challenge to {0[1]}".format(name_strings))
答案 1 :(得分:3)
一种方法可能是将数组扩展到str format函数...
array_of_strings = ['Team1', 'Team2']
message = '{0} posted a challenge to {1}'
print(message.format(*array_of_strings))
#> Team1 posted a challenge to Team2
答案 2 :(得分:2)
你非常接近,你需要做的就是删除你的例子中的逗号并将其转换为元组:
print "%s posted a challenge to %s" % tuple(name_strings)
修改:哦,并在@ s
中添加%s
,但@falsetru指出。
另一种方法是在没有强制转换为元组的情况下,使用format
函数,如下所示:
print("{} posted a challenge to {}".format(*name_strings))
在这种情况下,*name_strings
是python语法,用于使列表中的每个元素成为format
函数的单独参数。
答案 3 :(得分:0)
concatenated_value = ' posted a challenge to '.join(name_strings)