[英]How to address a dictionary in a list of ordered dicts by unique key value?
[英]Deriving a unique and ordered list from a complex dictionary
我有一个嵌套的元组列表,我需要分解成一个列表并删除每个的第一个序数。 我似乎无法弄清楚如何做到这一点。
我有示例数据,例如:
[[('Item 1', <__main__.J object at 0x1018fc690>), ('Item 2', <__main__.J object at 0x1018fc6d0>)]]
我试图将其减少到
[<__main__.J object at 0x1018fc690>, <__main__.J object at 0x1018fc6d0>]
有人可以指出我正确的方向。 我已经尝试过itertools和zip(*)无济于事。
import itertools
import operator
class J(object):
pass
w = J()
w.Type = 'Item 1'
w.Page = 35
w.Fragment = 'AA'
q = J()
q.Type = 'Item 2'
q.Page = 78
q.Fragment = 'BA'
z = [[('Item 1', w),('Item 2', q)]]
y = [b for b in z]
print y
result = ([ a for a,b in z ], [ b for a,b in z ])
print result
print zip(*z)
这是您要找的东西吗?
result = [c[1] for b in z for c in b]
print result
像这样吗
>>> lis = [[(1, 'a'), (2, 'b')]]
zip
:
>>> zip(*lis[0])[1]
('a', 'b')
清单理解:
>>> [y for _, y in lis[0]]
['a', 'b']
作为@Christian答案的替代方法(该答案没有任何问题),您还可以使用itertools
来itertools
列表:
result = [c[1] for c in itertools.chain.from_iterable(z)]
无论您发现哪种结构更容易遵循,我都会采用。 两者都假定只有一层嵌套-可以使用递归处理程序来处理任意深度的嵌套。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.