Python:创建列表列表的最有效方法是什么,每个项目都是唯一的,具体取决于另一个嵌套列表?

问题描述 投票:0回答:1

我有 REST API,可以接收我排序的任意数据并将其转换为列表列表,例如

attributes = [ ['nike', 'adidas', 'salmon'], ['38'], ['blue', 'grey'] ]

我想要的是创建新的列表列表,子列表中的每个元素与其他元素唯一映射,例如:

paths = [ ['nike', '38', 'blue'], 
          ['nike', '38', 'grey'],
          ['adidas', '38', 'blue'], 
          ['adidas', '38', 'grey'],
          ['salmon', '38', 'blue'], 
          ['salmon', '38', 'grey'] ]

我感谢您的回答和建议,以最有效的方式实现这一目标。

python arrays list sorting multidimensional-array
1个回答
1
投票

正如评论所建议的,您可以使用 itertools lib 中的 product 函数。

>>> from itertools import product
>>> attributes = [ ['nike', 'adidas', 'salmon'], ['38'], ['blue', 'grey'] ]
>>> product(*attributes)
<itertools.product object at 0x7fba3ca3a080>
>>> set(product(*attributes))
{('adidas', '38', 'grey'), ('salmon', '38', 'grey'), ('nike', '38', 'blue'), ('adidas', '38', 'blue'), ('salmon', '38', 'blue'), ('nike', '38', 'grey')}

© www.soinside.com 2019 - 2024. All rights reserved.