2016-09-15 42 views
2

我有一個類對象列表'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

您可以使用.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" 
+0

以上建議感謝!這兩個答案迄今爲止完美 – swam

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不再用於理解,並且不再需要索引

+0

讚賞的建議和解釋。這兩種解決方案都可行 – swam