PYTHON基础技能 – Python中10个巧妙运用append()函数+列表的实例

释放双眼,带上耳机,听听看~!

今天我们要来一场Python列表的小探险,特别是围绕咱们的好朋友——

1
append()

函数。别看它简单,用对了地方,它可是能让你的代码效率飙升,还充满乐趣呢!

1. 基础中的基础:添加单个元素


1
my_list&nbsp;=&nbsp;&#091;1,&nbsp;2,&nbsp;3]<br>my_list.append(4)<br>print(my_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;1,&nbsp;2,&nbsp;3,&nbsp;4]</em>

简单粗暴,就像给队伍后面拉进来一个新队员一样,

1
append()

让4顺利加入了列表。

2. 逐步构建列表

让我们一步一步来构建列表,就像积木一样,每次加一块。


1
my_list&nbsp;=&nbsp;&#091;]<br>for&nbsp;i&nbsp;in&nbsp;range(5):<br>&nbsp;&nbsp;&nbsp;&nbsp;my_list.append(i)<br>print(my_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;0,&nbsp;1,&nbsp;2,&nbsp;3,&nbsp;4]</em>

这不就是从小到大排列的数字嘛,

1
append()

在这儿就像计数器的加一按钮。

3. 动态列表的魔法

想知道怎么把用户输入的东西直接加到列表里吗?


1
my_list&nbsp;=&nbsp;&#091;]<br>while&nbsp;True:<br>&nbsp;&nbsp;&nbsp;&nbsp;user_input&nbsp;=&nbsp;input("输入点什么(输入'end'结束):")<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;user_input&nbsp;==&nbsp;'end':<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br>&nbsp;&nbsp;&nbsp;&nbsp;my_list.append(user_input)<br>print(my_list)

用户说啥咱就加啥,直到他们说“end”,这互动感,绝了!

4. 从函数返回值直接添加

函数里计算好的东西,也能直接塞进列表哦。


1
def&nbsp;calculate():<br>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;999<br><br>my_list&nbsp;=&nbsp;&#091;]<br>my_list.append(calculate())<br>print(my_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;999]</em><br>计算完的宝藏,一键入库,高效!<br><br><em>##&nbsp;5.&nbsp;列表+列表,一步到位</em><br><br>你知道吗?可以append整个列表进去!<br><br>```python<br>list1&nbsp;=&nbsp;&#091;1,&nbsp;2,&nbsp;3]<br>list2&nbsp;=&nbsp;&#091;4,&nbsp;5,&nbsp;6]<br>list1.append(list2)<br>print(list1)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;1,&nbsp;2,&nbsp;3,&nbsp;&#091;4,&nbsp;5,&nbsp;6]]</em>

看,不是合并,是把list2作为一个整体放了进去。想要扁平化?那又是另一套技巧了。

6. 穿越循环的迷宫

在循环里append,就像是在迷宫里留下你的足迹。


1
numbers&nbsp;=&nbsp;&#091;10,&nbsp;20]<br>for&nbsp;i&nbsp;in&nbsp;range(5):<br>&nbsp;&nbsp;&nbsp;&nbsp;numbers.append(numbers&#091;-1]&nbsp;+&nbsp;numbers&#091;-2])<br>print(numbers)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;10,&nbsp;20,&nbsp;30,&nbsp;50,&nbsp;80,&nbsp;130]</em>

斐波那契序列,循环加append,是不是觉得数学也变得好玩了?

7. 动态数组的魅力

处理动态数据时,append是常客。


1
data_inputs&nbsp;=&nbsp;&#091;]<br>while&nbsp;True:<br>&nbsp;&nbsp;&nbsp;&nbsp;try:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num&nbsp;=&nbsp;int(input("请输入数字(输入非数字结束):"))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_inputs.append(num)<br>&nbsp;&nbsp;&nbsp;&nbsp;except&nbsp;ValueError:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br>print(data_inputs)

只吃数字,其他的一律拒收,这样的列表,实用又有趣!

8. 优雅地处理API响应

假设你正在写个程序,从API获取数据,然后想把这些数据存起来?


1
import&nbsp;requests<br><br>response&nbsp;=&nbsp;requests.get('https://api.example.com/data')<br>data_list&nbsp;=&nbsp;&#091;]<br>for&nbsp;item&nbsp;in&nbsp;response.json():<br>&nbsp;&nbsp;&nbsp;&nbsp;data_list.append(item)<br>print(data_list)

网络请求的宝贝,通过append温柔拥抱,数据处理就这么简单。

9. 实现简单的队列操作

列表还能假装成队列,先进先出(FIFO),

1
append()

在这里扮演“入队”角色。


1
queue&nbsp;=&nbsp;&#091;]<br>queue.append('任务1')<br>queue.append('任务2')<br>print(queue.pop(0))&nbsp;&nbsp;<em>#&nbsp;处理第一个任务</em><br>print(queue)&nbsp;&nbsp;<em>#&nbsp;剩下的任务</em>

虽然Python有deque,但用列表简单模拟也很有趣,对吧?

10. 简易日志系统

想要记录程序运行过程中的事件?append是你的得力助手。


1
log&nbsp;=&nbsp;&#091;]<br>log.append("程序启动")<br>try:<br>&nbsp;&nbsp;&nbsp;&nbsp;<em>#&nbsp;这里执行可能出错的代码</em><br>&nbsp;&nbsp;&nbsp;&nbsp;pass<br>except&nbsp;Exception&nbsp;as&nbsp;e:<br>&nbsp;&nbsp;&nbsp;&nbsp;log.append(f"发生错误:{e}")<br>finally:<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;entry&nbsp;in&nbsp;log:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(entry)

记录每一步,调试的时候你会感谢现在的自己。


进阶及高级技巧

11. 列表内推导与append的结合

列表内推导是Python的一大特色,虽然它本身不直接使用

1
append()

,但与之搭配,可以完成更复杂的逻辑。


1
numbers&nbsp;=&nbsp;&#091;1,&nbsp;2,&nbsp;3,&nbsp;4,&nbsp;5]<br>squares&nbsp;=&nbsp;&#091;]<br>&#091;squares.append(n**2)&nbsp;for&nbsp;n&nbsp;in&nbsp;numbers&nbsp;if&nbsp;n&nbsp;%&nbsp;2&nbsp;==&nbsp;0]&nbsp;&nbsp;<em>#&nbsp;只平方偶数</em><br>print(squares)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;4,&nbsp;16]</em>

这里,虽然看起来是列表内推导,实际上利用了

1
append()

来构建一个包含偶数平方的新列表,是不是很巧妙?

12. 元组到列表的转换

有时候,你可能会遇到需要将元组的每个元素添加到列表中的情况。虽然可以直接解包,但用

1
append()

也能展示一种思路。


1
tuple_data&nbsp;=&nbsp;(10,&nbsp;20,&nbsp;30)<br>my_list&nbsp;=&nbsp;&#091;]<br>for&nbsp;item&nbsp;in&nbsp;tuple_data:<br>&nbsp;&nbsp;&nbsp;&nbsp;my_list.append(item)<br><em>#&nbsp;或者更简洁的列表推导</em><br>my_list&nbsp;=&nbsp;&#091;item&nbsp;for&nbsp;item&nbsp;in&nbsp;tuple_data]<br>print(my_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;10,&nbsp;20,&nbsp;30]</em>

虽然直接转换可能更直观,但了解这种通过循环使用

1
append()

的方法也是有益的。

13. 动态列表作为函数参数

当你需要在多个函数间传递并修改同一个列表时,

1
append()

就显得尤为方便。


1
def&nbsp;add_to_list(value,&nbsp;target_list):<br>&nbsp;&nbsp;&nbsp;&nbsp;target_list.append(value)<br><br>my_list&nbsp;=&nbsp;&#091;]<br>add_to_list(42,&nbsp;my_list)<br>add_to_list("Hello",&nbsp;my_list)<br>print(my_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;42,&nbsp;'Hello']</em>

通过这种方式,函数可以“无副作用”地修改外部列表,增加了代码的灵活性。

14. 避免常见的陷阱:浅复制与append

当你尝试append一个列表的浅复制时,要注意行为差异。


1
original_list&nbsp;=&nbsp;&#091;1,&nbsp;2,&nbsp;3]<br>copied_list&nbsp;=&nbsp;original_list.copy()&nbsp;&nbsp;<em>#&nbsp;浅复制</em><br>copied_list.append(4)<br>print(original_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;1,&nbsp;2,&nbsp;3]</em><br>print(copied_list)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;&#091;1,&nbsp;2,&nbsp;3,&nbsp;4]</em>

这里没有陷阱,只是展示了复制后操作不会影响原列表,但请记住,对于嵌套列表,浅复制可能引起意料之外的共享问题。

15. 性能考虑:append VS 其他方法

在处理大量数据时,频繁的

1
append()

可能导致列表重新分配内存,影响性能。虽然对于小规模列表这不是问题,但在极端情况下,考虑使用

1
extend()

合并列表或

1
collections.deque

进行高效的追加操作是更优的选择。


1
large_list&nbsp;=&nbsp;&#091;i&nbsp;for&nbsp;i&nbsp;in&nbsp;range(1000000)]<br>another_large_list&nbsp;=&nbsp;&#091;i&nbsp;for&nbsp;i&nbsp;in&nbsp;range(1000000,&nbsp;2000000)]<br><br><em>#&nbsp;使用extend合并,通常比多次append快</em><br>large_list.extend(another_large_list)

至此,我们不仅探索了

1
append()

的多种用法,还涉及了一些高级话题和性能优化的思考

给TA打赏
共{{data.count}}人
人已打赏
安全运维

安全运维之道:发现、解决问题的有效闭环

2024-4-14 20:59:36

安全运维

稳定性建设 – 架构优化的关键策略

2025-2-11 17:15:56

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索