我有两个 list :

A: [[0, 1], [2, [3]], 4]

B: [5, 6, 7, 8, 9]

我希望列表B的形状与列表A相同:

因此,列表A和列表B具有相同的尺寸/形状:

A: [[0, 1], [2, [3]], 4]

B: [[5, 6], [7, [8]], 9]

考虑到时间复杂性,如果可能的话,我希望有一种O(n)的方法.

推荐答案

假设项数相同,可以使用递归函数和迭代器:

A = [[0, 1], [2, [3]], 4]
B = [5, 6, 7, 8, 9]

def copy_shape(l, other):
    if isinstance(other, list):
        other = iter(other)
    if isinstance(l, list):
        return [copy_shape(x, other) for x in l]
    else:
        return next(other)
    
out = copy_shape(A, B)

输出:[[5, 6], [7, [8]], 9]

NB. the complexity is O(n). You can also use 100 or 101 in place of 102 to generalize to other iterables (except iterator).

Python相关问答推荐

当变量也可以是无或真时,判断是否为假

获取Azure Pipelines以从pyproject.toml(而不是relevments_dev.文本)安装测试环境

Polars -转换为PL后无法计算熵.列表

使用多个性能指标执行循环特征消除

指示组内的rejected_time是否在creation_timestamp后5分钟内

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

Python 3.12中的通用[T]类方法隐式类型检索

根据条件将新值添加到下面的行或下面新创建的行中

Pandas 在最近的日期合并,考虑到破产

Matlab中是否有Python的f-字符串等效物

查找两极rame中组之间的所有差异

在Pandas DataFrame操作中用链接替换'方法的更有效方法

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

如何从数据库上传数据到html?

Django RawSQL注释字段

如何从需要点击/切换的网页中提取表格?

在Python中调用变量(特别是Tkinter)

如何杀死一个进程,我的Python可执行文件以sudo启动?

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''

从旋转的DF查询非NaN值