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)

创建列表

②元素变化
  1. 增加: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)
    

    增加元素

  2. 删除: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)
    

    删除元素

  3. 修改:索引替换、切片

    #通过索引修改:
    number = [1, 2, 3]
    print("原列表为: ",number)
    num[1] = 10
    print("索引修改后的列表为: ",number)
    
    #通过切片修改多个元素:
    number = [1, 2, 3]
    print("原列表为: ",number)
    number[1:3] = [10, 20]
    print("切片修改后的列表为: ",number)
    

    修改元素

  4. 查询:索引访问、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. 特点
  1. 元素能进行增、删、改的操作,是****可变序列
  2. 以****键值对的方式存储数据;
  3. 元素位置根据****hash函数计算得出,是无序的序列
  4. 字典中的****键不可变,也就是说不能单独对键进行增、删、改操作。
c. 限制条件
  1. 字典中的****键独一无二,同一个字典不会存在2个相同的键
  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)

字典创建1

字典创建2

③添加
  • 使用 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)