【python append函数的一些细节】

这个错卡我半天

python append()

博主在数据处理时需要将列表B添加到列表A中作为元素子列表,发现一些关于append函数的细节:
(1)append和赋值同时使用,t3结果为None,但t1中被成功添加t2列表
(2)先append再赋值,t1成功添加t2,并将添加后的结果赋给t3
(3)print(t1.append(t2))打印结果为None来看,该语句指向的并非t1地址,因此赋值结果为None

# 
t1 = [1, 2, 3]
t2 = [4, 5]
t3 = t1.append(t2)
print(t3)
print(t1)
print(t1.append(t2))

t1 = [1, 2, 3]
t2 = [4, 5]
t1.append(t2)
print(t1)
t3 = t1
print(t3)

# 结果
None
[1, 2, 3, [4, 5]]
None
[1, 2, 3, [4, 5]]
[1, 2, 3, [4, 5]]
### Python中`append`函数的用法 在Python中,`append`函数是列表(list)的一个方法,用于将一个元素添加到列表的末尾。此方法不会返回新的列表,而是直接修改原始列表[^3]。 #### 基本语法 ```python list.append(element) ``` 其中,`list`表示目标列表,`element`是要添加到列表末尾的元素。 #### 示例代码 以下是一些常见的使用场景: 1. **向列表末尾添加单个元素** ```python a = [1, 2, 3] a.append(5) print(a) # 输出: [1, 2, 3, 5] ``` 2. **向列表末尾添加另一个列表** 如果需要添加的是一个列表,则会将整个列表作为一个元素添加到原列表中。 ```python a = [1, 2, 3] a.append([4, 5]) print(a) # 输出: [1, 2, 3, [4, 5]] ``` 3. **向列表末尾添加空元素** 若要向列表末尾添加一个空值,可以将参数设置为`None`。 ```python test = [] test.append(None) print(test) # 输出: [None] ``` 4. **优化性能:将函数作为变量保存** 在循环中频繁调用`append`时,可以通过将`append`方法赋值给一个变量来提高性能,减少每次调用时的查找成本。 ```python def opt_loop(x): y = [] append = y.append # 将append方法赋值给变量 for n in x: append(n) # 使用变量调用append return y result = opt_loop([1, 2, 3, 4]) print(result) # 输出: [1, 2, 3, 4] ``` 5. **生成多维数组** 利用`append`可以轻松构建多维数组。 ```python import numpy as np a = [] for i in range(5): a.append([]) for j in range(5): a[i].append(i) print(a) # 输出: [[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]] a_transpose = np.transpose(a) print(a_transpose) # 输出: [[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]] ``` 6. **常见错误** 如果未提供参数或提供的参数数量不正确,将会引发`TypeError`异常。 ```python test = [] test.append() # 错误示例 ``` 上述代码会导致以下错误: ``` TypeError: append() takes exactly one argument (0 given) ``` #### 注意事项 - `append`方法只能添加一个元素到列表末尾,若需添加多个元素,请使用`extend`方法[^4]。 - 当需要插入元素到指定位置时,应使用`insert`方法而非`append`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值