博客
关于我
03 序列数据
阅读量:801 次
发布时间:2023-04-02

本文共 4125 字,大约阅读时间需要 13 分钟。

Python数据结构入门指南

本章内容

本章将从Python中的基本数据结构入手,重点讲解列表、元组、字典和集合四种数据类型的特点、操作方法以及实际应用场景。

重点内容

列表

概念

列表是Python中最常用的数据结构,可存储不同类型的元素。所有元素用方括号[ ]包裹,元素间用逗号“,”分隔。例如:[1, 2, 3, 'abc', 4]

列表的基本操作

  • 创建列表
    使用list()函数或直接用方括号定义。例如:
    list1 = [1, 2, 3, 4]list2 = list(('1,2,3,4'))  # 使用字符串生成列表
  • 求表长
    使用内置函数len()获取列表长度。例如:
    len(list1)  # 返回4
  • 列表更新
    可通过添加、删除、替换等操作修改列表内容。
  • 列表合并
    使用+运算符或extend()方法合并两个列表。例如:
    list1 = [1, 2]list2 = [3, 4]list1 + list2  # [1, 2, 3, 4]list1.extend(list2)  # list1变为[1, 2, 3, 4]
  • 列表乘法
    使用*运算符快速生成多个重复的列表。例如:
    list1 = [1, 2]list1 * 3  # [1, 2, 1, 2, 1, 2]
  • 列表分片
    使用切片操作符[:]提取列表中一部分元素。例如:
    list1 = [1, 2, 3, 4]list1[1:3]  # [2, 3]

列表的方法

  • 检索元素
    使用in关键字判断元素是否存在。例如:
    if 3 in list1:    print("存在3")
  • 统计元素出现次数
    使用count()方法统计元素数量。例如:
    list1.count(2)  # 返回1
  • 在表尾添加元素
    使用append()方法。例如:
    list1.append(5)  # list1变为[1, 2, 3, 4, 5]
  • 在表中插入元素
    使用insert()方法指定位置。例如:
    list1.insert(2, 5)  # list1变为[1, 5, 2, 3, 4]
  • 合并两个列表
    使用+运算符或extend()方法。例如:
    list1 = [1, 2]list2 = [3, 4]list1 + list2  # [1, 2, 3, 4]list1.extend(list2)  # list1变为[1, 2, 3, 4]
  • 移除并返回元素
    使用pop()方法。例如:
    list1.pop()  # 返回并移除最后一个元素list1.pop(2)  # 返回并移除第三个元素
  • 列表逆置
    使用reverse()方法或[::-1]切片。例如:
    list1.reverse()  # list1变为[4, 3, 2, 1]list1 = list1[::-1]  # list1变为[4, 3, 2, 1]
  • 列表排序
    使用内置方法或sorted()函数排序。例如:
    list1.sort()  # list1按升序排序sorted_list = sorted(list1)  # 返回新排序后的列表

元组

概念

元组是与列表类似的数据结构,但所有元素不可变。用圆括号( )表示,例如:(1, 2, 3)

元组的基本操作

  • 元组创建
    使用tuple()函数或直接用圆括号定义。例如:
    tuple1 = (1, 2, 3)tuple2 = tuple(('a', 'b', 'c'))  # 通过字符串生成元组
  • 元组读取
    使用索引或in关键字检索元素。例如:
    print(tuple1[1])  # 输出2if 'a' in tuple2:    print("存在'a'")
  • 元组删除
    使用del语句删除元素或整个元组。例如:
    del tuple1[1]  # 删除第二个元素del tuple1  # 删除整个元组
  • 元组切片
    使用切片操作符提取元组部分元素。例如:
    tuple1 = (1, 2, 3, 4)tuple1[1:3]  # (2, 3)
  • 求长度
    使用len()函数获取元组长度。例如:
    len(tuple1)  # 返回3
  • 元组合并
    使用+运算符或extend()方法合并元组。例如:
    tuple1 = (1, 2)tuple2 = (3, 4)tuple3 = tuple1 + tuple2  # (1, 2, 3, 4)
  • 成员判断
    使用in关键字判断元素是否存在。例如:
    if 3 in tuple2:    print("存在3")
  • 元组分片
    使用切片操作符提取元组部分元素。例如:
    tuple1 = (1, 2, 3, 4)tuple1[1:3]  # (2, 3)

元组和列表的区别

  • 结构上
    列表用方括号[ ]表示,元组用圆括号( )表示。
  • 速度上
    元组访问和修改速度更快,因为元素不可变。
  • 转换
    列表可以直接转换为元组,反之则不行。
  • 字典

    概念

    字典是Python中唯一的映射数据结构,每个成员由“键:值”对形式组成。用大括号{ }表示,例如:{“name”:“Zhangsan”, “sex”:“M”}

    字典基本操作

    • 创建字典
      使用内置函数dict()fromkeys()方法创建。例如:
      dict1 = dict()  # 空字典dict2 = dict.fromkeys(['a', 'b', 'c'])  # {'a': None, 'b': None, 'c': None}
    • 添加与修改
      使用键作为下标赋值。当键不存在时,添加新键值对;当键存在时,修改对应值。例如:
      dict1 = {}dict1['name'] = 'Zhangsan'  # 添加新键dict1['address'] = 'Nanjing'  # 修改值
    • 删除成员或字典
      使用del语句删除键值对或整个字典。例如:
      del dict1['sex']  # 删除键'sex'及其值del dict1  # 删除整个字典
    • 字典遍历
      使用for循环和items()方法遍历键值对。例如:
      for key, value in dict1.items():    print(f"{key}: {value}")
    • 字典遍历(键)
      使用keys()方法获取所有键。例如:
      for key in dict1.keys():    print(key)
    • 字典遍历(值)
      使用values()方法获取所有值。例如:
      for value in dict1.values():    print(value)

    字典的方法

    • 获取指定键对应的值
      使用get()方法。例如:
      phone = dict1.get('phone')  # 返回'123456'
    • 清空字典
      使用clear()方法。例如:
      dict1.clear()  # 字典变为空
    • 字典复制
      使用copy()方法进行浅拷贝。例如:
      dict2 = dict1.copy()  # 浅拷贝
    • 字典更新
      使用update()方法合并另一个字典。例如:
      dict2 = {'age': 20}dict1.update(dict2)  # dict1变为{'name': 'Zhangsan', 'sex': 'M', 'address': 'Nanjing', 'phone': '123456', 'age': 20}

    集合

    概念

    集合是Python中无序且不重复的数据结构。集合可分为可变集合和不可变集合。集合和字典的关系:集合是字典的键集合。

    集合的特点

  • 唯一性
    集合中的元素不能重复。
  • 无序性
    集合中的元素存储顺序无关紧要。
  • 不可变性
    一些集合是不可变的,元素添加或删除会导致错误。
  • 可迭代性
    集合可以用for循环遍历。
  • 集合和字典的关系
    集合是字典的键集合,字典是集合的键的映射。
  • 集合的基本操作

    • 可变集合的创建
      使用set()函数。例如:
      set1 = {1, 2, 3}
    • 不可变集合的创建
      使用frozenset()函数。例如:
      frozen_set1 = frozenset([1, 2, 3])
    • 集合的访问
      集合是不可变的,无法通过索引访问元素。
    • 可变集合的元素添加
      使用add()方法。例如:
      set1.add(4)  # set1变为{1, 2, 3, 4}
    • 可变集合的元素删除
      使用remove()方法。例如:
      set1.remove(2)  # set1变为{1, 3, 4}
    • 集合的常规操作
      支持并(|)、交(&)、差(-)、包含(in)等数学集合运算。例如:
      set1 = {1, 2}set2 = {3, 4}set1 | set2  # {1, 2, 3, 4}set1 & set2  # 空集set1 - set2  # {1, 2}set1 <= set2  # False
    • 类型转换
      使用isinstance()方法判断元素类型。例如:
      if isinstance(element, set):    print("是集合")

    任务清单

    已知字典 D={“name”:“Zhangsan”,“sex”:“M”,“address”:“Nanjing”,“phone”:“123456”},请设计以下功能的代码实现:

  • 输出字典 D 的所有键值对;
  • 输出 D 的 phone 值;
  • 修改 D 的"address"值为"Shanghai";
  • 添加键值对“age”: 20;
  • 删除字典 D 的"sex"键值对。
  • 以下是实现代码:

    # 1. 输出所有键值对for key, value in D.items():    print(f"{key}: {value}")# 2. 输出 phone 值print(D['phone'])# 3. 修改 address 值D['address'] = 'Shanghai'# 4. 添加 age 键值对D['age'] = 20# 5. 删除 sex 键值对if 'sex' in D:    del D['sex']

    以上代码实现了字典 D 的基本操作,满足了任务需求。

    转载地址:http://woefk.baihongyu.com/

    你可能感兴趣的文章
    oracle中sql的case语句运用--根据不同条件去排序!
    查看>>
    Oracle中Transate函数的使用
    查看>>
    oracle中关于日期问题的汇总!
    查看>>
    Oracle中常用的语句
    查看>>
    Oracle中序列的操作以及使用前对序列的初始化
    查看>>
    oracle中新建用户和赋予权限
    查看>>
    Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
    查看>>
    Oracle中的rownum 和rowid的用法和区别
    查看>>
    oracle中的大小写、字符、dual、数字、处理、日期、函数、显/隐式、时间、条件表达式case、decode、to_date、to_char、sysdate
    查看>>
    oracle中表和视图的区别,oracle中常用表和视图
    查看>>
    oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
    查看>>
    Oracle从11g导出后导入10g
    查看>>
    oracle从备份归档日志的方法集中回收
    查看>>
    oracle优化器analyzed,Oracle 学习之 性能优化(十三) 索引
    查看>>
    Oracle修改字段类型
    查看>>
    Oracle修改表或者字段的注释
    查看>>
    oracle典型安装失败,安装oracle 10失败
    查看>>
    Oracle内存结构详解(四)--Oracle SGA其他组成部分
    查看>>
    Oracle函数与存储过程和程序包
    查看>>
    Oracle分析函数之LEAD和LAG
    查看>>