接深度之眼(一)和(二)

零、导读

深度之眼(五)——Python组合数据类型_开发语言

4.1 列表

4.1.1 列表的表达

  • 序列类型:内部元素有位置关系,能通过位置序号访问其中元素
  • 列表是一个可以使用多种类型元素,支持元素增、删、改、查操作的序列类型
    深度之眼(五)——Python组合数据类型_大数据_02
    深度之眼(五)——Python组合数据类型_开发语言_03
  • 另一种产生方式: list(可迭代对象)
  • 可迭代对象包括:字符串、元组、集合. range()等
  1. 字符串转列表
list("人工智能是未来的趋势")

深度之眼(五)——Python组合数据类型_开发语言_04
2. 元组转列表

list(("我","们","很","像"))

深度之眼(五)——Python组合数据类型_python_05
3. 集合转列表

list({"李雷","韩梅梅","hello","world"})

深度之眼(五)——Python组合数据类型_大数据_06
4. 特殊的range()

for i in [0,1,2,3,4,5]:
    print(i)
for i in range(6):
    print(i)

深度之眼(五)——Python组合数据类型_大数据_07

range(起始数字、中止数字、数字间隔)
深度之眼(五)——Python组合数据类型_开发语言_08

for i in range(1,11,2):
	print(i)

深度之眼(五)——Python组合数据类型_python_09

中止的数字是取不到的

  • range()转列表
    深度之眼(五)——Python组合数据类型_其他_10

4.1.2 列表的性质

  • 列表的长度——len(列表)
len([1,2,3,4])

深度之眼(五)——Python组合数据类型_大数据_11

  • 列表的索引——与同为序列类型的字符串完全相同

变量名[位置编号]
正向索引从0开始
反向索引从-1开始

cars = ["BYD","BMW","AUDI","TOYOTA"]
print(cars[0])
print(cars[-1])

深度之眼(五)——Python组合数据类型_python_12

  • 列表的切片
    变量名[开始位置:结束位置:切片间隔]
  • 正向切片
    深度之眼(五)——Python组合数据类型_开发语言_13
cars = ["BYD","BMW","AUDI","TOYOTA"]
print(cars[:3])
print(cars[1:4:2])
print(cars[:])
print(cars[-4:-2])

深度之眼(五)——Python组合数据类型_其他_14

  • 反向切片
    深度之眼(五)——Python组合数据类型_其他_15
cars = ["BYD","BMW","AUDI","TOYOTA"]
print(cars[:-4:-1])
print(cars[::-1])

深度之眼(五)——Python组合数据类型_python_16

4.1.3 列表的操作符

深度之眼(五)——Python组合数据类型_大数据_17

4.1.4 列表的操作方式(详细)

1.、增加元素

  • 在末尾增加元素——列表 append(待增元素)
    深度之眼(五)——Python组合数据类型_其他_18
  • 在任意位置插入元素——列表insert(位置编号,待增元素)
  • 在位置编号相应元素前插入待增元素
    深度之眼(五)——Python组合数据类型_其他_19
  • 在末尾整体并入另一个列表——列表1.extend(列表2)
    深度之眼(五)——Python组合数据类型_其他_20
    2、删除元素
    深度之眼(五)——Python组合数据类型_python_21
    深度之眼(五)——Python组合数据类型_其他_22
cars = ["BYD","BMW","AUDI","TOYOTA"]
cars.append("CCTV")
cars.insert(1, "BBC")
cars.pop(2)
cars

深度之眼(五)——Python组合数据类型_大数据_23

删除列表里某个所有元素

深度之眼(五)——Python组合数据类型_大数据_24
3、查找元素

  • 列表中第一次出现待查元素的位置——列表.index(待查元素)
  • 不存在会报错深度之眼(五)——Python组合数据类型_其他_25
cars = ["BYD","BMW","AUDI","TOYOTA"]
cars.append("CCTV")
cars.insert(1, "BBC")
cars.pop(2)
ind = cars.index("CCTV")
print(ind)
cars

深度之眼(五)——Python组合数据类型_大数据_26
4、修改元素

  • 通过“先索引后赋值”的方式,对元素进行修改——列表名[位置] = 新值
    深度之眼(五)——Python组合数据类型_其他_27
    5、列表的赋值

  • 错误的方式
    深度之眼(五)——Python组合数据类型_开发语言_28

情况:删除旧列表某个元素后,新列表也会随之更新

  • 正确方式——浅拷贝
  1. 方法1:列表.copy()
    深度之眼(五)——Python组合数据类型_大数据_29
  2. 方法2:列表[:]
    深度之眼(五)——Python组合数据类型_python_30
    6、列表的排序
  • 使用列表.sort()对裂变进行永久排序
  • 直接在列表上进行操作,无返回值
    深度之眼(五)——Python组合数据类型_其他_31
  • 使用sorted(列表)对列表进行临时排序
  • 原列表保持不变,返回排序后的列表

深度之眼(五)——Python组合数据类型_python_32
7、列表的反转

  • 使用列表. reverse()对列表进行永久翻转
  • 直接在列表上进行操作,无返回值
    深度之眼(五)——Python组合数据类型_python_33
    8、使用for循环对列表进制遍历
    深度之眼(五)——Python组合数据类型_开发语言_34

4.2 元组

4.2.1 元组的表达

  • 元组是一个可以使用多种类型元素,一旦定义,内部元素不支持增、删和修改操作的序列类型
    通俗的讲,可以将元组视作“不可变的列表”
names = ("Peter","Pual","Mary")

4.2.2 元组的操作

  • 不支持元素增加、删除、修改
  • 其他操作与列表完全一致

4.2.3 元组的常见用处

打包与解包

  • 例1
    深度之眼(五)——Python组合数据类型_开发语言_35
  • 例2
    深度之眼(五)——Python组合数据类型_其他_36

4.3 字典

4.3.1 字典的表达

  • 映射类型:通过键”-*值”的映射实现数据存储和查找

  • 常规的字典是无序的
    深度之眼(五)——Python组合数据类型_开发语言_37
    字典键的要求

  • 1、字典的键不能重复
    深度之眼(五)——Python组合数据类型_其他_38

  • 2、字典的键必须是不可变类型,如果键可变,就找不到对应存储的值了

  • 不可变类型:数字、字符串、元组。一旦确定, 它自己就是它自己,变了就不是它了。

  • 可变类型:列表、字典、集合。-一旦确定,还可以随意增删改。
    深度之眼(五)——Python组合数据类型_python_39
    深度之眼(五)——Python组合数据类型_大数据_40

4.3.2 字典的性质

深度之眼(五)——Python组合数据类型_其他_41

4.3.3 字典的操作方法

1、增加键值对

  • 变量名[新键] = 新值
    深度之眼(五)——Python组合数据类型_python_42
    2、删除键值对
  • 通过del变量名[待删除健]
    深度之眼(五)——Python组合数据类型_python_43
  • 通过变量名.pop(待删除健)
    深度之眼(五)——Python组合数据类型_开发语言_44
  • 变量名.popitem() 随机删除一个键值对,并以元组返回删除键值对
    深度之眼(五)——Python组合数据类型_python_45
    3、修改值
  • 通过先索引后赋值的方式对相应的值进行修改
    深度之眼(五)——Python组合数据类型_其他_46

4、d.get( )方法(多看看,有点晕)
d.get(key,default)从字典d中获取键key对应的值, 如果没有这个键,则返回default

  • 小例子:统计“牛奶奶找刘奶奶买牛奶”中字符的出现频率
    深度之眼(五)——Python组合数据类型_python_47
    5、d.keys( ) d.values( )方法
    深度之眼(五)——Python组合数据类型_大数据_48
    6、d.items( )方法及宇典的遍历
    深度之眼(五)——Python组合数据类型_python_49

4.4 集合

4.4.1 集合的表达

  • 一系列互不相等元素的无序集合
  • 元素必须是不可变类型:数字,字符串或元组,可视作字典的键
  • 可以看做是没有值,或者值为None的字典
    深度之眼(五)——Python组合数据类型_其他_50

4.4.2集合的运算

  • 小例子通过集合进行交集并集的运算
    深度之眼(五)——Python组合数据类型_大数据_51
    • 语文和数学两门均为A的学员
    • S & T返回一个新集合,包括同时在集合S和T中的元素
      深度之眼(五)——Python组合数据类型_大数据_52
    • 语文或数学至少- -门为A的学员
    • S|T返回一个新集合,包括集合S和T中的所有元素
      深度之眼(五)——Python组合数据类型_python_53
      深度之眼(五)——Python组合数据类型_python_54

4.4.3 集合的操作方法

  • 增加元素一S.add(x)
    深度之眼(五)——Python组合数据类型_其他_55
  • 移除元素一S.remoxe(x)
    深度之眼(五)——Python组合数据类型_大数据_56
  • 集合的长度一len(S)
    深度之眼(五)——Python组合数据类型_python_57
  • 集合的遍历——借助for循环
    深度之眼(五)——Python组合数据类型_python_58

小结

列表
深度之眼(五)——Python组合数据类型_python_59

元组
深度之眼(五)——Python组合数据类型_开发语言_60

字典
深度之眼(五)——Python组合数据类型_其他_61

集合
深度之眼(五)——Python组合数据类型_开发语言_62