我有一个如下所示的数据结构:
[{u'id': [u'213938162d125653628e0912986e78b23d359ca3'], u'items': [u'item1', u'item12'], u'version': u'v1'},
{u'id': [u'213938162d125653628e0912986e78b23d359ca3'], u'items': [u'item1', u'item2', u'item3', u'item4'], u'version': u'v2'},
{u'id': [u'213938162d125653628e0912986e78b23d359ca3'], u'items': [u'item1', u'item2'], u'version': u'v3'},
{u'id': [u'213938162d125653628e0912986e78b23d359ca3'], u'items': [u'item1'], u'version': u'v4'}
]
我需要一个可以根据"版本"的值进行搜索的功能。获得"项目"然后将项目连接成一个字符串。
实现这一目标的最佳方法是什么。
答案 0 :(得分:3)
def joinItems(myList, version)
toConcate = []
for dct in filter(lambda dct: dct[u"version"] == version, myList):
toConcate.extend(dct[u"items"])
return "seperator".join(toConcate)
也可以在单个生成器理解中执行此操作:
return "sep".join(itertools.chain(dct[u"items"] for dct in myList if dct[u"version"] == version))