python学习——数据结构(列表、元组、集合、字典)
列表作为队列和栈:
栈:后进先出,可以用a.pop(空)来仿真
队列:先进先出,可以用a.pop(0)来仿真
没有列表推导式,用循环的方式建立列表:
>>> squares = [] >>> for x in range(10): ... squares.append(x**2) ... >>> squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
使用列表推导式:
1 squares = [x**2 for x in range(10)]
PS:这两种方法都会产生一个X=9
列表推导式也可以进行嵌套:
1 a = [1,2,3 ] 2 z = [x+1 for x in [x**2 for x in a]] 3 z 4 [2,5,10]
二、元组
元组由数个逗号分割的值组成
元组可以进行拆封操作
元组是不可变类型
1 >>> a = 'Fedora', 'ShiYanLou', 'Kubuntu', 'Pardus' 2 >>> a 3 ('Fedora', 'ShiYanLou', 'Kubuntu', 'Pardus') 4 >>> a[1] 5 'ShiYanLou' 6 >>> for x in a: 7 ... print(x, end=' ') 8 ... 9 Fedora ShiYanLou Kubuntu Pardus
三、集合
集合是一个无序且不重复元素的集。
大括号{}或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典。
四、字典
无序的键值对(key:value)
1.许多时候我们需要往字典中的元素添加数据,我们首先要判断这个元素是否存在,不存在则创建一个默认值。如果在循环里执行这个操作,每次迭代都需要判断一次,降低程序性能。这个时候使用dict.setdefault(key, default)
:
1 >>> data = {} 2 >>> data.setdefault('names', []).append('Ruby') 3 >>> data 4 {'names': ['Ruby']} 5 >>> data.setdefault('names', []).append('Python') 6 >>> data 7 {'names': ['Ruby', 'Python']} 8 >>> data.setdefault('names', []).append('C') 9 >>> data 10 {'names': ['Ruby', 'Python', 'C']}
2.试图索引一个不存在的键将会抛出一个 keyError 错误。我们可以使用 dict.get(key, default)
来索引键,如果键不存在,那么返回指定的 default 值:
1 >>> data['foo'] 2 Traceback (most recent call last): 3 File "<stdin>", line 1, in <module> 4 KeyError: 'foo' 5 >>> data.get('foo', 0) 6 0
3.想要在遍历列表(或任何序列类型)的同时获得元素索引值,可以使用 enumerate()
。
1 >>> for i, j in enumerate(['a', 'b', 'c']): 2 ... print(i, j) 3 ... 4 0 a 5 1 b 6 2 c
4.同时遍历两个序列类型,可以使用 zip()
函数。
1 >>> a = ['Pradeepto', 'Kushal'] 2 >>> b = ['OpenSUSE', 'Fedora'] 3 >>> for x, y in zip(a, b): 4 ... print("{} uses {}".format(x, y)) 5 ... 6 Pradeepto uses OpenSUSE 7 Kushal uses Fedora
任务1:
判断n名学生的成绩是否合格,总共三门课程,总分大于等于120合格。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理