Python数据结构
(1). 元组
a. 定义
- 可以存放****任何类型的数据对象,但元组的序列顺序和内容是
不能改变
的,使用()
标识,也可以去掉圆括号 - 只有一个元素,则****不能省略逗号
,
否则会被识别为数字
b. 操作
①切片
- 同列表的使用
②索引
-
可以根据索引号进行操作
tuple1 = (1,) tuple2 = (1,2,3,4) print(tuple1) print(tuple2[0:2])
③删除
-
使用del()
student = (1,'tom',21) print(student) del student print(student)
(2). 列表
a. 定义
- 列表(list)是包含0个或多个元素的****有序序列,使用中括号
[]
标识,使用英文逗号隔开
b. 操作
①创建
animal = ['elephant', 'monkey', 'snake', 'tiger']
print(animal)
②元素变化
-
增加:append()、insert()、extend()
#原列表 number = [1,2,3,4] print("原列表为: " ,number) #末尾插入元素 number.append(5) print("使用append方法后: ",number) #末尾添加元素 number.insert(1,10) #在索引为1的位置插入一个元素10 print("使用insert方法后: ",number) #末尾添加另一个列表 number.extend([4, 5, 6]) print("使用extend方法后: ",number)
-
删除:remove()、pop()、del()、clear()
#原列表 number = [1,2,3,4,1,2,3,4] print("原列表为: " ,number) #1. 删除首次出现元素 number.remove(2) print("使用remove方法后: " ,number) #2. 删除并返回指定位置的元素 number.pop() # 删除最后一个元素 print("使用默认pop方法后:",number) number.pop(0) # 删除第一个元素 print("使用自定义pop方法后:",number) #3. 根据索引删除元素,或者删除整个列表 number1 = [1,2,3,4] print("number1列表为: " ,number1) del number1[1] # 删除索引 1 处的元素 print("使用默认del方法后:",number1) del number1 # 删除整个列表 print("删除整个列表后:",number1) #找不到该列表,会报错 #4. 删除列表中的所有元素 number2 = [1,2,3,4] print("number2列表为: " ,number2) number2.clear() print("删除整个number2列表元素后:",number2)
-
修改:索引替换、切片
#通过索引修改: number = [1, 2, 3] print("原列表为: ",number) num[1] = 10 print("索引修改后的列表为: ",number) #通过切片修改多个元素: number = [1, 2, 3] print("原列表为: ",number) number[1:3] = [10, 20] print("切片修改后的列表为: ",number)
-
查询:索引访问、index()、count()、for循环
#1. 通过索引访问: number = [1, 2, 3] print("索引访问的结果是:",number[0]) #2. index():返回首次出现指定值的索引。 print("index()方法的使用:",number.index(2)) #3. count():返回指定元素在列表中出现的次数。 print("count()方法的使用:",number.count(2)) #4. 列表遍历:通过 for 循环遍历所有元素。 for item in number: print("for循环遍历的使用:",item)
③切片
-
使用****左闭右开的方法进行切片
number = [1,2,3,4,5,6,7,8,9,10] seq1 = number[:] print("seq1切片为:",seq1) seq2 = number[2:] print("seq2切片为:",seq2) seq3 = number[:5] print("seq3切片为:",seq3) seq4 = number[2:5] print("seq4切片为:",seq4)
(3). 字典
a. 定义
- **可变容器对象,里面的 每个元素之间用 **
逗号
隔开,每个元素都是一个键值对,键和值之间用冒号
隔开,使用花括号{}
标识
b. 特点
- 元素能进行增、删、改的操作,是****可变序列;
- 以****键值对的方式存储数据;
- 元素位置根据****hash函数计算得出,是无序的序列;
- 字典中的****键不可变,也就是说不能单独对键进行增、删、改操作。
c. 限制条件
- 字典中的****键独一无二,同一个字典不会存在2个相同的键
- 键是不可变的,故****不能为列表、字典
d. 字典与列表区别
相同点 | 不同点 | |
---|---|---|
字典 | 1. 使用等号赋值 = |
字典使用大括号**{}** |
列表 | 2. 分隔符为 逗号 , |
列表使用中括号**[]** |
e. 操作
①添加
members = {}
members[1] = 10
members['second'] = 5
print(members)
②修改
members = {1:10,'second':5}
members['second'] = '第二次'
print(members)
③删除
- pop()方法、del()方法
print("使用pop()方法")
members = {1:10,'second':5}
print(members)
members.pop('second')
print(members)
print("------------")
print("------------")
print("使用del()方法")
members = {1:10,'second':5}
print(members)
del members['second']
print(members)
④查询
-
使用键值对特性,根据****键查找值
sets = {1:'1',2:'2',3:'3',4:'4',5:'5'} for i in sets.keys(): print(sets[i])
(4). 集合
a. 定义
- **无序可变序列,使用大括号 **
{}
作为标识符,元素之间使用逗号,
分隔,同一个集合里元素是唯一的,不允许重复
b. 操作
①删除:remove()、discard()、pop()
#remove(),元素不存在,则报错
s1 = set(("abcde","hello"))
print(s1)
s1.remove("hello")
print(s1)
#pop(),随机删除元素
s1 = set(("abcde","hello"))
s1.pop()
print(s1)
#discard(),元素不存在,不会报错
s1 = set(("abcde","hello"))
s1.discard("abc")
print(s1)
s1.discard("abcde")
print(s1)
②创建
- 使用
set()
函数直接创建,生成的元素顺序随机
s1 = set('abcde')
print(s1)
③添加
-
使用
add()
、update()
#add() s1 = set('abcde') print(s1) s1.add(2) print('使用add方法后: ') print(s1) print('-------------------') #update() s1 = set('abcde') print(s1) s1.update([1,2,3,4,5,6,7,8,9,10]) print('使用update方法后: ') print(s1)
c. 集合运算
a = set('abracadaabra')
b = set('alacazam')
print(a)
print(b)
#差运算
print(a-b)
#或运算
print(a|b)
#并运算
print(a&b)
#异或运算
print(a^b)
(5). 运算符
a. 算术运算符
- **加 **
+
、减-
、乘*
、除\
b. 赋值运算符
**
c. 复合赋值运算符
+=
、-=
、*=
、\=
d. 比较运算符
==
、!=
、<>
、>=
、<=
(6). 条件控制
a. 单项判断
- if
if true: print('hello world')
b. 双向判断
- if ... else ...
x = 1 if x > 2: print('大于2') else: print('小于2')
c. 多向判断
- if ... elif ... else
- if ... elif ...
x = 2 if x > 2: print('x>2') elif x < 2: print('x<2') else: print('x=2')
d. 嵌套
(7). 循环语句
a. for ... in ...
for i in [1,2,3,4,5]:
print(i)
for i in range(10):
print(i)
b. while
a = 1
while a <5:
a+=1
print(a)