Py学习  »  Luapulu  »  全部回复
回复总数  1
5 年前
回复了 Luapulu 创建的主题 » 如何在Python中正确地向数组添加元素

你在A和B中没有相同的筑巢水平,这就是为什么你得到了一个奇怪的答案。A是一个列表,而B只是一个列表。

如果要添加就位:

A.append(B)
# Output: A = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

否则:

C = A + [B]

时间安排

结论:对于这个问题,你用哪种方法做并不重要,因为每个案例的时间都差不多。不过,有些方法更具可读性。

计时代码:

import timeit

A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
B = [10, 11, 12]


def append_arrs(arrs=(A, B)):
    a, b = arrs
    a.append(b)
    return a


def plus_arrs(arrs=(A, B)):
    return arrs[0] + [arrs[1]]


def loopadd_arrs(arrs=(A, B)):
    return [x + [y] for x, y in zip(*arrs)]


def listadd_arrs(arrs=(A, B)):
    a, b = arrs
    return list((*a, b))


func_list = ["append_arrs", "plus_arrs", "loopadd_arrs", "listadd_arrs"]


for func in func_list:
    t = timeit.timeit(stmt=f'{func}', setup=f'from __main__ import {func}')
    print(f"Time for {func}: {t}")