python中append函数的用法

append函数会在数组后加上相应的元素

例:

a=[1,2,3]
a.append(5)

此时,运行结果为 [1, 2, 3, 5]

a=[1,2,3]
a.append([5])

此时,运行结果为 [1, 2, 3, [5]]

结果不再为一个数组,而是list

用append生成多维数组:

import numpy as np
a=[] 
for i in range(5): 
    a.append([])
    for j in range(5): 
        a[i].append(i)

结果如下:

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

矩阵转置函数transpose方法:

a=np.transpose(a)

结果如下:

      ([[0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4]])

数组合并操作:

h=np.arange(-2,2,1)
h.shape
k1=np.c_[h,h] #横向合并函数1 np.c_,将数组转化为列向量
k2=np.hstack((h,h)) #横向合并函数2 np.hstack,将数组作为横向量
print("k1="+str(k1))
print("k2="+str(k2))
l1=np.r_[[h],[h]] #纵向合并函数np.r_
l2=np.vstack((h,h)) #纵向合并函数np.vstack
print("l1="+str(l1))
print("l2="+str(l2))

结果如下:

k1=[[-2 -2]
 [-1 -1]
 [ 0  0]
 [ 1  1]]
k2=[-2 -1  0  1 -2 -1  0  1]
l1=[[-2 -1  0  1]
 [-2 -1  0  1]]
l2=[[-2 -1  0  1]
 [-2 -1  0  1]]
### Python 中 `append` 方法的用法Python 中,`append` 是列表对象的一个内置方法,其作用是在列表末尾添加一个新的单个元素。这意味着如果要通过 `append` 向列表中添加多个元素,则需要逐一调用该方法[^1]。 以下是关于 `append` 的一些重要特性和行为: #### 单一元素的追加 当使用 `append` 将单一数据类型的变量(如整数、字符串等)加入到列表时,这些元素会被作为独立项存储于列表之中。 ```python list_example = [] list_example.append(42) # 追加一个整数值 print(list_example) # 输出: [42] ``` #### 复杂数据结构的处理 对于复杂的数据类型,比如列表或者字典,`append` 并不会将其内部元素拆分并分别插入目标列表;而是将整个对象作为一个整体附加至原列表末端。这可能导致某些意料之外的结果,尤其是当所附的对象本身也是可变类型的时候[^3]。 考虑下面的例子: ```python nested_list = [[], []] for sub_list in nested_list: sub_list.append('X') outer_list = [] outer_list.append(nested_list) # 修改原始嵌套列表的内容会影响已存入 outer_list 的副本 nested_list[0].append('Y') print(outer_list) # 结果可能为 [[[‘X’, ‘Y’], [‘X’]]] 而不是预期中的[[['X'], ['X']]] ``` 上述情况表明,在操作包含其他容器类别的项目前需格外小心,因为任何后续变动都可能会反映回已经追加过的记录上[^2]。 #### 常见误区与解决办法 有时开发者会遇到即使成功执行了多次 append 操作却未能看到期望效果的情形。这种情况通常发生在多线程或多进程环境下,其中资源竞争条件导致部分更新丢失[^4]。为了防止此类问题发生,可以采用锁机制同步访问共享资源的操作序列。 另外值得注意的是,虽然可以通过循环配合 append 来达到批量增加的目的,但这并不是最高效的方式。如果事先知道待扩展的数量大小,推荐改用 extend 或者切片赋值等方式一次性完成任务。 --- ### 示例代码展示 这里给出几个具体的例子帮助理解如何正确运用 append 函数: 简单案例——向空数组填充值: ```python numbers = [] for number in range(5): numbers.append(number ** 2) print(numbers) # 屏幕显示:[0, 1, 4, 9, 16] ``` 高级应用——动态构建复合型数据集: ```python data_points = [{'id': idx} for idx in range(3)] metadata = {'source': 'example'} for point in data_points: point.update(metadata.copy()) # 使用 copy 防止所有条目指向同一内存地址 new_collection = [] new_collection.append(data_points[:]) # 整体拷贝后再加入新集合以防污染源数据 ``` ---
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值