追加或添加到特定索引的字符串

时间:2016-09-15 19:17:01

标签: python python-2.7

我有一个类对象列表' x'。我试图通过附加对象的某些属性值来创建一个新列表,但我想为每个索引添加更多的一个属性。例如,我目前得到的东西:

x = blah.values()

newList = []
for i in range(len(x)):
    if x[i].status == 'ACT':
        newList.append(str(x[i].full_name)),
        newList.append(str(x[i].team))
else:
    pass

print newList

上面的代码为我提供了类似的内容:

['Victor Cruz', 'NYG', 'Marcus Cromartie', 'SF',....]

我想要得到的东西:

['Victor Cruz NYG', 'Marcus Cromartie SF',....]

如何为每个索引附加多个属性?希望这有意义,如果需要,我可以尝试进一步阐述,谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用.format()来格式化字符串。注意{} {}

之间的空格
for i in range(len(x)):
    if x[i].status == 'ACT':
        newList.append("{} {}".format(x[i].full_name,x[i].team) )

另一种方法是使用"%s" % string符号

newList.append("%s %s" % (str(x[i].full_name),str(x[i].team)))

.format使用的另一个例子。

"{} is {}".format('My answer', 'good')
>>> "My answer is good"

答案 1 :(得分:2)

您可以使用.format()append字符串将项目放入一个字符串中:

for i in range(len(x)):
    if x[i].status == 'ACT':
        newList.append('{} {}'.format(x[i].full_name, x[i].team))

在较轻松的说明中,使用列表理解是创建列表的绝佳选择:

newList = ['{} {}'.format(o.full_name, o.team) for o in blah.values() if o.status == 'ACT']

您会注意到理解中不再使用rangelen,并且不再需要索引