第五讲:Python的数据集合

第五讲:Python的数据集合


目录:

一、容器技术

容器:
Python程序运行过程中可以包含其他对象的对象,叫做容器.

Python中常用的容器有四类:

  • 列表(List).
  • 元组(Tuple).
  • 字典(Dict).
  • set集合(Set).

1.1 列表

列表介绍:

  • 用中括号来包裹.
  • 所有元素都是有顺序的.

索引:

  • 0开始,由左向右排序.
    • 0 1 2 3 4 ....
      反向索引:
  • -1开始,由右向左排序.
    • -5 -4 -3 -2 -1 ....

列表基本操作:

创建列表:

lst = ['abc', 12, [10, 20]]
nums = [10, 20, 30, 40, 50, 60]
my_emt = [] # 空列表,没有任何元素.

列表中的任意一个元素都不限定数据类型.

查询列表:

# 使用下标来查找单个元素.
nums = [10, 20, 30, 40, 50, 60]
print(nums[3])

# 切片技术:使用下标来查找多个元素.
# 注意:索引序列包头不包尾.
#   正向索引:
print(nums[2:6]) # [30, 40, 50, 60]
#   反向索引:
print(nums[-4:]) # [30, 40, 50, 60]
print(nums[:-2]) # [10, 20, 30, 40]
  • 返回单个元素所对应的下标
nums = [10, 20, 30, 40, 50, 60]
print(nums.index(50))
  • 返回列表的长度
nums = [10, 20, 30, 40, 50, 60]
print(len(nums))
  • 判断某一个元素是否存在
nums = [10, 20, 30, 40, 50, 60]
if 30 in nums:
    print('存在列表中!')
else:
    print('不存在列表中!')
  • 循环遍历
nums = [10, 20, 30, 40, 50, 60]
for i in nums:
    print(i)

新增操作:

append函数

nums = [10, 20, 30, 40, 50, 60]
nums.append(70)
print(nums)

insert函数

# 把80添加到下标为0的位置.
nums = [10, 20, 30, 40, 50, 60]
nums.insert(0, 80)
print(nums)

append只能把新增的元素添加到列表的最后位置.

删除操作:

pop函数

nums = [5, 10, 20, 30, 40, 50, 60]
nums.pop()  # 无参数默认删除最后一个元素.
nums.pop(0) # 删除下标为0的指定元素.

remove函数

nums = [5, 10, 20, 30, 40, 50, 60]
nums.remove(10) # 删除指定元素的值.
print(nums)

修改操作:

nums = [5, 10, 20, 30, 40, 50, 60]
nums[4] = 400
print(nums)

代码示例:

    """ 一、列表(List) """

    # 创建列表.
    lst = ['abc', 12, 'def', 3.14]
    nums = [10, 20, 30, 40, 50, 60]
    my_emt = [] # 空列表,不存放任何对象.

    # 查询列表
    #   1.使用下标来查找单个元素.
    print(nums[2])
    print(nums[-3])
    #   2.切片技术:使用下表来查找多个元素.
    print(nums[1:5])
    print(nums[:-2])
    #   3.返回单个元素所对应的下标.
    print(nums.index(20))
    #   4.返回列表的长度.
    print(len(nums))
    #   5.判断某一个元素是否存在.
    if 30 in nums:
        print('存在列表中!')
    else:
        print('不存在列表中!')
    #   6.循环遍历.
    for i in nums:
        print(i)

    # 新增操作
    #   1.append函数.
    nums.append(90)
    print(nums)
    #   2.insert函数
    nums.insert(1, 100)
    print(nums)

    # 删除操作
    #   1.pop函数.
    nums.pop()
    print(nums)
    nums.pop(1)
    print(nums)
    #   2.remove函数:
    nums.remove(30)
    print(nums)

    # 修改操作
    nums[2] = 400
    print(nums)

1.2 元组

元组介绍:

  • 使用小括号,且逗号隔开各个数据.
  • 元组可以包含不同的数据类型,所有数据都是有顺序的.
  • 元组不支持修改,只支持查找.

元组基本操作类型:

创建元组:

# 非单一元素元组的创建.
nums = (10, 20, 30, 40, 50, 60)

# 如果元组中只有一个值,必须在后面加逗号.
tub = (100,)

查询元组:

# 使用下标来查找单个元素.
nums = (10, 20, 30, 40, 50, 60)
print(nums[4])

# 切片技术:使用下标来查找多个数据.
print(nums[1:5])
  • 返回单个元素的下标
nums = (10, 20, 30, 40, 50, 60)
print(nums.index(40))
  • 判断某一元素是否存在
nums = (10, 20, 30, 40, 50, 60)
if 20 in nums:
    print('存在')
  • 循环遍历
# 防止下标越界.
nums = (10, 20, 30, 40, 50, 60)
i = 0
while i < len(nums):
    print(nums[i])
    i += 1

代码示例:

    """ 二、元组(Tuple) """

    # 创建元组
    nums = (10, 20, 30, 40, 50, 60)
    print(nums)
    tub = (90,)
    print(tub)

    # 查询元组
    #   1.使用下标来查找单个元素.
    print(nums[1])
    #   2.切片技术:使用下标来查找多个数据.
    print(nums[1:5])
    #   3.返回单个元素的下标.
    print(nums.index(40))
    #   4.判断某一元素是否存在.
    if 30 in nums:
        print('存在元组中!')
    else:
        print('不存在元组中!')

    # 循环遍历
    i = 0
    while i < len(nums):
        print(nums[i])
        i += 1

1.3 字典

字典介绍:

  • 字典是一种可变类型的容器.
  • 字典中的数据元素没有顺序.
  • 操作:
    • 支持增删改查操作.
  • 基本格式:
    • 符号为:
      • 大括号:{}.
    • 数据为:
      • 键值对形式出现.
      • 键和值之间用冒号:)隔开.
        • key必须是唯一的,而value没有要求.

注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v.

字典基本操作类型:

创建字典:

dict1 = {'a': 10, 'b': 20, 'c': 50}
dict2 = {} # 创建一个空的字典.
print(dict1)
print(dict2)

查询操作:

  • 根据一个指定的key来返回对应的value
dict1 = {'a': 10, 'b': 20, 'c': 50}
# 第一种方式:
print(dict1['a'])

# 第二种方式:
print(dict1.get('a'))

区别:

  • 如果key不存在,dict1[key]会报错.
  • 如果key不存在,get函数不会报错,会返回一个None.
  • 循环遍历
dict1 = {'a': 10, 'b': 20, 'c': 50}

# 遍历字典中所有的key.
dict1.keys()
for k in dict1.keys():
    print(k)

# 遍历字典中所有的value
for v in dict1.values():
    print(v)

# 遍历字典中的所有元素(包括key和value)
for k, v in dict1.items():
    print(f'元素的key是:{k},对应的value是:{v}')

新增操作:

dict1 = {'a': 10,'b' : 20,'c' : 50}
dict1['d'] = 100
print(dict1)

修改操作

dict1 = {'a': 10, 'b': 20, 'c': 50}
dict1['a'] = 500
print(dict1)

删除操作:

dict1 = {'a': 10, 'b': 20, 'c': 50}
del(dict1['b'])
print(dict1)

代码示例:

    """ 三、字典(Dict) """

    # 创建字典
    dict1 = {'a': 10, 'b': 20, 'c': 30}
    dict2 = {} # 空字典.
    print(dict1)

    # 查询操作
    #   1.根据一个指定的key来返回对应的value
    #       (1)第一种方式.
    print(dict1['a'])
    #       (2)第二种方式.
    print(dict1.get('f'))
    #   2.循环遍历.
    #       (1)遍历字典中所有的key.
    for k in dict1.keys():
        print(k)
    #       (2)遍历字典中所有的value.
    for v in dict1.values():
        print(v)
    #       (3)遍历字典中的所有元素(包括key和value)
    for k, v in dict1.items():
        print(f'元素的key是:{k},对应的value是:{v}')

    # 新增操作
    dict1['d'] = 100
    print(dict1)

    # 修改操作
    dict1['a'] = 500
    print(dict1)

    # 删除操作
    del(dict1['a'])
    print(dict1)

1.4 set集合

set集合介绍:

  • 集合中不能出现重复的元素,自动去掉重复元素.
  • 集合数据是无序的,故不支持下标.

set集合基本操作类型:

创建集合:

# 创建非空集合.
set1 = {10, 20, 30, 40}
set2 = set(['abc', 'efg'])

# 创建空集合.
set3 = set()

如果要创建空集合只能使用set(),因为{}用来创建空字典.

查询操作:

  • 查询某一元素是否在集合中
set1 = {10, 20, 30, 40}
if 20 in set1:
    print('存在集合中!')
else:
    print('不存在集合中!')
  • 循环遍历
set1 = {10, 20, 30, 40}
for i in set1:
    print(i)

新增操作:

set1 = {10, 20, 30, 40}

# 新增单个元素.
set1.add(50)
set1.add(50)
print(set1)

# 新增多个元素,参数是列表.
set1 = {10, 20, 30, 40}
set1.update([80, 90])
print(set1)

删除操作:

set1 = {10, 20, 30, 40}
set1.remove(10)
print(set1)

修改操作(无法通过下标修改单个元素):

set1 = {10, 20, 30, 40}
set1.remove(50)
set1.add(100)
print(set1)

代码示例:

    """ 四、set集合(Set) """

    # 创建集合
    #   1.创建非空集合.
    set1 = {10, 20, 30, 40}
    set2 = set(['abc', 12, 'Axiomer', 90])
    print(set1)
    print(set2)
    #   2.创建空集合.
    set3 = set()
    print(set3)

    # 查询操作
    #   1.查询某一元素是否在集合中.
    if 20 in set1:
        print('存在集合中!')
    else:
        print('不存在集合中!')
    #   2.循环遍历.
    for i in set1:
        print(i)

    # 新增操作
    #   1.新增单个元素.
    set1.add(90)
    set1.add(90)
    print(set1)
    #   2.新增多个元素,参数是列表.
    set1.update([100, 110])
    print(set1)

    # 删除操作
    set1.remove(10)
    print(set1)

    # 修改操作(无法通过下标修改单个元素)
    set1.remove(110)
    set1.add(1000)
    print(set1)

二、四种常见容器的比较归纳

容器类型定义是否可变是否有有序是否可重复常见操作
Listnums = [10, 20, 30]是(支持切片)index(); len(); append(); insert(); pop(); remove()
Tuplenums = (10, 20, 30)是(支持切片)index(); len()
Dictnums = {'a': 10, 'b': 20, 'c': 30}key不可以,但value可以dict[key] = value; keys(); values(); items(); len()
Setnums = {10, 20, 30}add(); update(); remove(); len()

三、课堂小结

勤于将过去学过的知识进行归纳对比关联总结

  • 形式:
    • 知识表格.
    • 思维导图.
    • 网络拓扑图.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值