Python中append和expend方法

相同点

  • append()和expend()方法都是在list后面追加信息

不同点

  • append()是在list末尾追加一个对象,追加的对象可以是一个元素,可以是一种数据类型,例如追加一个list,dict,tuple等等。
  • expend()是在list末尾追加一个对象中的多个值,在list末尾添加的是对象中的值,而不是对象类型。并且expend()中不能填写一个int,因为一个int是不能迭代读取的
dict_ = {"key1": "val1", "key2": 10}  
list_ = [1, "val2", False, None, [2, 3]]  
tuple_ = (11, 12, (13, 14), {"key_tuple": "val_tuple"})  
  
list_append = []  # 用append方法追加  
list_expend = []  # 用extend方法追加  
  
list_append.append("数据1")  
print("list_append:", list_append)  
list_append.clear()  # 清空列表  
print("#" * 30)  
list_append.append(dict_)  
print("list_append:", list_append)  
list_append.clear()  # 清空列表  
print("#" * 30)  
  
list_append.append(list_)  
print("list_append:", list_append)  
list_append.clear()  # 清空列表  
print("#" * 30)  
  
list_append.append(tuple_)  
print("list_append:", list_append)  
print("\n")  
  
  
list_expend.extend("数据1")  
print("list_expend:", list_expend)  
list_expend.clear()  # 清空列表  
print("#" * 30)  
  
list_expend.extend(dict_)  # 字典数据默认只读key  
print("list_expend:", list_expend)  
list_expend.clear()  # 清空列表  
print("#" * 30)  
  
list_expend.extend(list_)  # 顺序读取list中的所有元素  
print("list_expend:", list_expend)  
list_expend.clear()  # 清空列表  
print("#" * 30)  
  
list_expend.extend(tuple_)  # 顺序读取tuple中的所有元素  
print("list_expend:", list_expend)  
print("#" * 30)

打印结果:

list_append: ['数据1']
##############################
list_append: [{'key1': 'val1', 'key2': 10}]
##############################
list_append: [[1, 'val2', False, None, [2, 3]]]
##############################
list_append: [(11, 12, (13, 14), {'key_tuple': 'val_tuple'})]


list_expend: ['数', '据', '1']
##############################
list_expend: ['key1', 'key2']
##############################
list_expend: [1, 'val2', False, None, [2, 3]]
##############################
list_expend: [11, 12, (13, 14), {'key_tuple': 'val_tuple'}]
##############################

Process finished with exit code 0

### 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个

红包金额最低5元

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

抵扣说明:

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

余额充值