将字符串与数组值连接

时间:2013-12-26 01:54:39

标签: python arrays

我正在使用Python并且希望能够创建一个数组,然后将值与特定格式的字符串连接起来。我希望下面能解释一下我的意思。

name_strings = ['Team 1', 'Team 2']
print "% posted a challenge to %s", %(name_strings)

name_strings中的每个值都会放在%s点。非常感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

  1. 删除,

    print "% posted a challenge to %s", %(name_strings)
    #                                 ^
    
  2. 格式说明符不完整。将其替换为%s

    print "% posted a challenge to %s" %(name_strings)
    #      ^
    
  3. String formatting operation需要一个元组,而不是列表:将列表转换为元组。

    name_strings = ['Team 1', 'Team 2']
    print "%s posted a challenge to %s" % tuple(name_strings)
    
  4. 如果您使用的是Python 3.x,则应将print作为函数形式调用:

    print("%s posted a challenge to %s" % tuple(name_strings))
    

  5. 使用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)