2014-05-19 132 views
0

我有一個元組列表(a),我想要更改爲列表列表(b)。將元組列表更改爲python列表中的列表

a = [('ad','as'),('bs','bt'),('cs','cr')] 
b = [['ad','as'],['bs','bt'],['cs','cr']] 

我試過下面的代碼,但它不會改變任何東西。我錯過了什麼嗎?

b = [] 
for element in a: 
    b.append(list(element)) 
+3

您的代碼是正確的。 'b'將會和你想要的完全一樣。問題是什麼? –

+0

*它不會改變任何內容*您如何驗證? –

+0

@TimCastelijns在我的導師 – user3651651

回答

2

您可以用更短的解決方案嘗試,如:

b = map(list,a) 

這通過將list函數「A」的每一個元素生成一個新的列表。

該地圖使用理解列表相當於相對較長代碼:

b = [ list(x) for x in a] 
+0

提供的測試代碼上嘗試了更多pythonic的方法。 +1 – svvac

0
a = [('ad','as'),('bs','bt'),('cs','cr')] 
b = [[elem[0], elem[1]] for elem in a] 
-1
a = [('ad','as'),('bs','bt'),('cs','cr')] 
b = [] 
for element in a: 
    b.append(list(element)) 
print(b) 

表明,B現在是列出的所需列表 - 讓你的代碼工作正常...

AND:當然,如果你真的定義了b,那麼它並不會改變,如下例所示:

  1. 首先要定義BAS所需
  2. 您創建一個新的列表(空)並將其標記爲b
  3. 您填寫此表與所需的值。

- >新的b與舊的b相同 - 因此,即使您的代碼有效,也沒有可見的更改。

如果要第二次添加元組元素,只需刪除b = []行即可。

+1

可能因爲這與OP發佈的代碼完全相同 –

0
>>>a = [('ad','as'),('bs','bt'),('cs','cr')] 
>>>b = [list(item) for item in a] 
>>>b 
[['ad', 'as'], ['bs', 'bt'], ['cs', 'cr']] 
相關問題