我有一个类对象列表' 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',....]
如何为每个索引附加多个属性?希望这有意义,如果需要,我可以尝试进一步阐述,谢谢!
答案 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']
您会注意到理解中不再使用range
和len
,并且不再需要索引。