当前位置: 首页 > news >正文

自己做的网站怎么接入数据库深圳网站制作哪里济南兴田德润简介

自己做的网站怎么接入数据库,深圳网站制作哪里济南兴田德润简介,哪家网络推广好,wordpress突然访问不Python的列表(list)是编程中最常用、最灵活的数据结构之一。它不仅可以存储任意类型的元素(如字符串、数字、字典等),还能通过灵活的操作(如切片、动态增删、列表推导式)高效地管理数据。本文将…

Python的列表(list)是编程中最常用、最灵活的数据结构之一。它不仅可以存储任意类型的元素(如字符串、数字、字典等),还能通过灵活的操作(如切片、动态增删、列表推导式)高效地管理数据。本文将深入探讨列表的常见用法,包括如何存储表格数据、动态存取、性能优化及高级操作技巧。

列表存储复杂数据:以表格为例

列表可以存储任意Python对象,包括字符串、字典、甚至其他列表。一个经典的用例是用列表存储表格数据,其中每一行是一个字典,整个列表代表一张完整的表。

示例:存储表格数据

假设有一个学生成绩表,包含姓名、科目、分数三列:

每一行是一个字典,整个列表存储整个表格student_scores = [{"name": "Alice", "subject": "Math", "score": 95},{"name": "Bob", "subject": "Physics", "score": 88},{"name": "Charlie", "subject": "Chemistry", "score": 92}
打印表格for row in student_scores:print(f"{row['name']}: {row['subject']} - {row['score']}分")输出:  Alice: Math - 95分  
Bob: Physics - 88分  
Charlie: Chemistry - 92分  

优点:
字典存储每行的键值对,清晰易读。

列表存储所有行,便于遍历和索引访问。

加序号遍历列表

在打印或处理列表时,经常需要为每项添加序号。Python提供了几种方式实现:

方法1:enumerate()(推荐)

fruits = ["apple", "banana", "cherry"]
for idx, fruit in enumerate(fruits, start=1):  # start=1 让序号从1开始print(f"{idx}. {fruit}")输出:  
1. apple
2. banana  
3. cherry  

方法2:手动计数(不推荐)

count = 1
for fruit in fruits:print(f"{count}. {fruit}")count += 1

推荐使用enumerate(),代码更简洁,且不会因手动计数引入错误。

动态存取:append()与pop()的性能分析

列表的append()(添加元素)和pop()(删除元素)是常见的操作,但它们的性能取决于操作的位置:

操作时间复杂度说明
append(item)O(1)(均摊)在列表末尾添加元素,通常很快
pop()(无索引)O(1)删除并返回最后一个元素,很快。
pop(0)(删除头部)O(n)需要移动后续所有元素,较慢。

为什么pop(0)是O(n)?

因为列表在内存中是连续存储的,删除头部元素后,后续所有元素必须向前移动一位。

替代方案:collections.deque

如果需要频繁在头部增删,deque(双端队列)是更好的选择,因为它的popleft()和appendleft()都是O(1)操作:

from collections import dequequeue = deque([1, 2, 3])
queue.appendleft(0)  # O(1)
queue.popleft()      # O(1)

结论:
如果主要是末尾操作(如日志记录),用list即可。

如果需要频繁头部操作(如消息队列),用deque更高效。

列表推导式:一键生成列表

列表推导式(List Comprehension)是Python中优雅且高效的列表生成方式,可以替代大部分for+append的代码。

基础语法

生成平方数列表squares = [x2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]带条件过滤只保留偶数的平方even_squares = [x2 for x in range(10) if x % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]

对比循环写法

传统写法:  
squares = []
for x in range(10):squares.append(x2)

列表推导式的优势:
代码更简洁,可读性更强。

Python解释器会优化其执行,通常比普通循环更快。

惰性计算:生成器表达式

如果数据量很大,不想一次性生成整个列表,可以用生成器表达式(Generator Expression),它按需生成值,节省内存:

生成器表达式(用()代替[])lazy_squares = (x2 for x in range(1000000))  # 不立即计算需要时再取值for square in lazy_squares:if square > 1000:breakprint(square)

适用场景:
数据量极大,无法一次性加载到内存。

只需要遍历一次数据(如流式处理)。

列表切片:灵活截取数据

列表切片(Slicing)允许我们按范围提取子列表,语法为list[start🔚step]。

基础用法

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]取前3个元素print(nums[:3])  # [0, 1, 2]取第2到第5个元素(索引1到4)print(nums[1:5])  # [1, 2, 3, 4]每隔2个取一个print(nums[::2])  # [0, 2, 4, 6, 8]

反向切片

倒序取全部print(nums[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]从第5个元素倒序取到第2个print(nums[4:1:-1])  # [4, 3, 2]

实际应用:分页显示

假设有一组数据要分页展示(每页10条):

data = list(range(100))  # 0~99的数据
page = 3  # 第3页
page_size = 10start = (page - 1) * page_size
end = start + page_sizepage_data = data[start:end]
print(page_data)  # [20, 21, ..., 29]

切片的优势:
代码简洁,无需手动计算索引。

不会修改原列表,而是返回新视图。

总结

Python列表是功能强大的数据结构,掌握其高级用法可以显著提升代码效率和可读性:
存储表格数据:用字典存行,列表存表。

加序号遍历:优先用enumerate()。

动态存取:append/pop通常是O(1),但pop(0)是O(n),考虑deque优化。

列表推导式:简洁高效,大数据用生成器表达式节省内存。

切片操作:灵活截取数据,适合分页等场景。

合理使用这些技巧,能让你的Python代码更专业、更高效! 🚀

关于循环、迭代、递归还是有很多值得研究的东西,谢谢阅读,欢迎点赞、留言、建议

http://www.dtcms.com/a/464206.html

相关文章:

  • 搬瓦工可以长期做网站网站建设推广信息
  • 泰州网站制作专业网页制作与网站开发从入门到精通 下载
  • 网站建设松江公司wordpress multisite
  • 网站开发行业资讯wap网站什么意思
  • 淘客做网站还是做app腾讯云远程安装wordpress
  • 新手建设网站wdcp wordpress伪静态
  • phpcms网站logo阿里域名注册网站
  • 义乌网站搭建网站备案通过之后
  • python做网站和php北京建网站服务
  • 免费网站建设基础步骤个人备案企业网站
  • 学校网站的常规化建设西安英文网站制作
  • 备案 网站名称涉及到行业公司做网站需要哪些资料
  • 万网有域名怎么建网站易商官方网站
  • 手机网站建设代码广西网站建设哪家强
  • 三线建设学兵连网站西安地区联系人阿里云网站空间主机
  • 做网站找客源厦门网站制作推广
  • 做普通网站公司吗学设计需要什么条件
  • 郑州网站建设郑州网络推广重庆公司建网站流程
  • 网站创意模板找个免费网站这么难吗
  • 义乌商城集团网站建设快推广app下载
  • 那个网站做二手买卖的宁德网站建设制作
  • 网站如何强制修改主页 源码WordPress文章分享图
  • d开头的做网站的软件东莞电子网站建设哪儿有
  • 怎样安装网站模板系统的超级宗门
  • 福建建设执业注册中心网站做像淘宝这样的购物网站要多少钱
  • 济南企业自助建站杭州建站公司
  • 如何查网站服务器速度中国建设银行账户查询
  • 中国在菲律宾做网站广东省建筑工程信息网
  • 宜昌市住房城乡建设网站免费申请网站永久域名
  • 做网站linux和win长沙公司制作网站费用