为什么我的复制功能创建的列表的长度是原始列表的两倍?

时间:2018-07-28 03:05:58

标签: python list function for-loop copy

我创建了一个复制列表并返回新列表的函数。由于某种原因,该函数返回的列表的长度是原始列表的两倍。

为什么返回的列表的长度是原始列表的两倍?

first = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def kopi(alist = [], blist = []):
    for element in alist:
        blist.append(element)
    return blist

print(kopi(alist = first))
print("length:", len(kopi(alist = first)))

我也知道复制列表的简单方法是:

import copy as cp
first = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
second = cp.copy(first)
print(second)
print("length:", len(second))

那么为什么kopi函数会创建一个两倍大小的列表? 如果可能的话,我也想知道copy.copy()如何在python中工作。

1 个答案:

答案 0 :(得分:0)

问题是我在kopi中包含了要作为参数返回的列表

def kopi(alist = [], blist = []):

这是修改后的kopi函数:

first = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def kopi(alist = []):
    blist = []
    for element in alist:
        blist.append(element)
    return blist

print(kopi(alist = first))
print("length:", len(kopi(alist = first)))