gpt4 book ai didi

python - 如何在 Python 中使锯齿状数组整齐?

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:18 24 4
gpt4 key购买 nike

我有一个这样的数组:['a', ['e', 'r', 't'], 'c']

我想使用某种处理方式使数组整洁:[['a', 'e', 'c'], ['a', 'r', 'c'], ['a', 't', 'c']] .

如果数组是:['a', ['e', 'r', 't'], ['c', 'd']]

结果是:[['a', 'e', 'c'], ['a', 'e', 'd'], ['a', 'r', 'c'], ['a' , 'r', 'd'], ['a', 't', 'c'], ['a', 't', 'd']]

并且数组的长度不固定为3,其他例子:

['a', 'b'] = > ['a', 'b']
['a', ['b', 'c']] => [['a', 'b'], ['a', 'c']]
['ab', ['b', 'c']] => [['ab', 'b'], ['ab', 'c']]
[[1, 2], 3, 4] => [[1, 3, 4], [2, 3, 4]]

那我该怎么办呢? Numpy 中有解决方案吗?

最佳答案

除非我误解了这个问题,否则您只需要 product的子列表,尽管您必须首先将任何单个元素包装到列表中。

>>> from itertools import product
>>> arr = ['a', ['e', 'r', 't'], ['c', 'd']]
>>> listified = [x if isinstance(x, list) else [x] for x in arr]
>>> listified
[['a'], ['e', 'r', 't'], ['c', 'd']]
>>> list(product(*listified))
[('a', 'e', 'c'),
('a', 'e', 'd'),
('a', 'r', 'c'),
('a', 'r', 'd'),
('a', 't', 'c'),
('a', 't', 'd')]

关于python - 如何在 Python 中使锯齿状数组整齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51204835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com