从复杂字典生成列表

Pra*_*bhu 2 python python-3.x

我有一本字典dict1['a'] = [ [1,2], [3,4] ],需要生成一个列表l1 = [2, 4].也就是说,每个内部列表的第二个元素中的列表.它可以是单独的列表,甚至可以将字典修改为dict1['a'] = [2,4].

Joh*_*uhy 8

给出一个清单:

>>> lst = [ [1,2], [3,4] ]
Run Code Online (Sandbox Code Playgroud)

您可以使用简单的列表解析来提取每个子列表的第二个元素:

>>> [x[1] for x in lst]
[2, 4]
Run Code Online (Sandbox Code Playgroud)

如果要对字典中的每个值执行此操作,可以迭代字典.我不确定你想要什么样的最终数据,但这样的事情可能会有所帮助:

>>> dict1 = {}
>>> dict1['a'] = [ [1,2], [3,4] ]
>>> [(k, [x[1] for x in v]) for k, v in dict1.items()]   
[('a', [2, 4])]
Run Code Online (Sandbox Code Playgroud)

dict.items()以字典形式返回(键,值)对作为列表.因此,此代码将提取字典中的每个键,并将其与上面生成的列表配对.

  • 如果字典结果应该是首选的话,在Python 3中也可以在字典理解中做到这一点 - 看起来像:{k:[x [1]代表x in v]代表k,v代表dict1.items()} (2认同)