2014-05-19 131 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']] 
相关问题