2013-07-08 46 views
0

我想將兩個字符串作爲單個元素附加到Python列表中。這是我的問題的一個簡單的例子:將兩個字符串作爲單個元素附加到Python列表中

lowerCase = [['a', 'b', 'c', 'd', 'e']] 
newList = [] 

# Append two pieces of data as a single element 
i = 1; 
for letter in lowerCase[0]: 
    [newList.append(letter), newList.append(i)] 
    i += 1 

print newList 
print len(newList) 

我能得到什麼:

['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5] 
10 

我想要什麼:

[['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]] 
5 

回答

1

的問題是在for循環。它應該做的是這樣的:

for letter in lowerCase[0]: 
    newList.append([letter, i]) 
    i += 1 
+0

謝謝,我想我嘗試過不同的是一切。 –

1

你需要的是

newList.append([letter, i]) 
+0

謝謝,我想我除了那個之外幾乎都試過。 –

0

在當前的代碼看看:

[newList.append(letter), newList.append(i)] 

這行創建了一個清單出來的輸出這兩個方法調用。其實你不使用列表,所以你基本上是這樣做的:

newList.append(letter) 
newList.append(i) 

你想在一次兩個元素追加一個迭代裏面:

newList.append([letter, i]) 
newList.append((letter, i)) # Tuples are faster to create, as they're immutable 

而且,你平時不需要手動創建並增加一個變量i。只需使用enumerate

newList = [] 

for index, letter in enumerate(lowerCase[0], start=1): 
    newList.append((letter, index)) 

或者與列表理解:

newList = [(letter, index) for index, letter in enumerate(lowerCase[0], start=1)] 
相關問題