我有一個元組列表(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))
我有一個元組列表(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))
您可以用更短的解決方案嘗試,如:
b = map(list,a)
這通過將list
函數「A」的每一個元素生成一個新的列表。
該地圖使用理解列表相當於相對較長代碼:
b = [ list(x) for x in a]
提供的測試代碼上嘗試了更多pythonic的方法。 +1 – svvac
a = [('ad','as'),('bs','bt'),('cs','cr')]
b = [[elem[0], elem[1]] for elem in a]
a = [('ad','as'),('bs','bt'),('cs','cr')]
b = []
for element in a:
b.append(list(element))
print(b)
表明,B現在是列出的所需列表 - 讓你的代碼工作正常...
AND:當然,如果你真的定義了b
,那麼它並不會改變,如下例所示:
b
- >新的b
與舊的b
相同 - 因此,即使您的代碼有效,也沒有可見的更改。
如果要第二次添加元組元素,只需刪除b = []
行即可。
可能因爲這與OP發佈的代碼完全相同 –
>>>a = [('ad','as'),('bs','bt'),('cs','cr')]
>>>b = [list(item) for item in a]
>>>b
[['ad', 'as'], ['bs', 'bt'], ['cs', 'cr']]
您的代碼是正確的。 'b'將會和你想要的完全一樣。問題是什麼? –
*它不會改變任何內容*您如何驗證? –
@TimCastelijns在我的導師 – user3651651