【问题标题】:Merge lists with conditions in python在python中将列表与条件合并
【发布时间】:2018-02-02 09:32:49
【问题描述】:

我有这个:

list_one = [[['id'], ['value']], [['id'], ['value2']] , [['id'], ['value3']]]

我想要的是:

list_two = [['id'], ['value'], ['value2'], ['value3']]

基于我在 list_one 中的每个 id。

非常感谢您的帮助。

【问题讨论】:

  • 不清楚,因为您没有提供具有不同 id 值的示例
  • 首先显示你尝试过的内容
  • 您是否有理由继续使用长度为 1 lists 的 strs 而不是 strs?如果您可以只使用str,那么答案会更加优雅,并且您的数据将更易于使用。

标签: python list merge conditional-statements


【解决方案1】:

你可以试试这个:

import itertools
list_one = [[['id'], ['value']], [['id'], ['value2']] , [['id'], ['value3']]]

new_data = list(set(i[0] for i in itertools.chain.from_iterable(list_one)))

final_list = list(map(lambda x: [x], sorted(new_data, key=len))) #must be casted to a list in Python3 because map returns a map instance.

【讨论】:

  • @patrick 感谢您指出这一点。在 Python3 中,它返回一个地图实例,而在 Python2 中,它只返回一个列表。由于 OP 没有标记 python3.x,我没有将地图转换为列表。不过,我会注意的。
猜你喜欢
  • 2018-04-11
  • 2016-06-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多