数据结构基础

高级提示词工程师| 第二部分:编程和算法

| 第二节:数据结构基础

| 知识点详解:

  1. 列表(List)

    • 列表可以存储任意类型的数据,包括数字、字符串、甚至其他列表。
    • 列表是可变的,可以进行增加、删除、修改等操作。
    • 列表索引从0开始。
    1
    2
    3
    4
    5
    6
    # 列表创建和基本操作
    numbers = [1, 2, 3, 4, 5] # 创建列表
    numbers.append(6) # 添加元素到列表末尾
    num = numbers.pop(0) # 删除并返回列表首个元素
    numbers.extend([7, 8]) # 将一个列表添加到当前列表末尾
    print(numbers) # [2, 3, 4, 5, 6, 7, 8]
  2. 元组(Tuple)

    • 元组与列表类似,但是一旦创建就不能修改。
    • 元组通常用于保护数据不被改变。
    1
    2
    3
    4
    # 元组创建和不可变性质
    coordinates = (10, 20, 30) # 创建元组
    print(coordinates) # (10, 20, 30)
    # coordinates[0] = 15 # 这会抛出TypeError,元组是不可变的
  3. 字典(Dictionary)

    • 字典以键值对的形式存储数据,其中键是唯一的。
    • 字典是可变的,可以添加、删除或修改键值对。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 字典创建和操作
    person = {
    'name': 'Alice',
    'age': 25,
    'job': 'Engineer'
    } # 创建字典
    person['age'] = 26 # 修改键值对
    del person['job'] # 删除键值对
    print(person.get('name')) # 'Alice', 使用get方法访问键值
  4. 集合(Set)

    • 集合是一个无序的不重复元素集。
    • 集合可以进行数学上的集合操作,如并集、交集、差集。
    1
    2
    3
    4
    5
    6
    # 集合创建和基本操作
    set1 = {1, 2, 3}
    set2 = {3, 4, 5}
    union_set = set1.union(set2) # {1, 2, 3, 4, 5}
    intersection_set = set1.intersection(set2) # {3}
    difference_set = set1.difference(set2) # {1, 2}
  5. 栈(Stack)

    • 栈是一种后进先出(LIFO)的数据结构。
    • 可以使用列表来实现栈。
    1
    2
    3
    4
    5
    # 栈的实现
    stack = []
    stack.append('a') # push('a')
    stack.append('b') # push('b')
    print(stack.pop()) # pop() -> 'b'
  6. 队列(Queue)

    • 队列是一种先进先出(FIFO)的数据结构。
    • 可以使用collections.deque来高效实现队列。
    1
    2
    3
    4
    5
    6
    7
    from collections import deque

    queue = deque()
    queue.append('item1') # enqueue('item1')
    queue.appendleft('item0') # enqueue to the beginning
    print(queue.pop()) # dequeue() -> 'item1'
    print(queue.popleft()) # dequeue from the beginning -> 'item0'

检验问题:

  1. 问题一:创建一个包含前10个自然数的平方的列表,并打印出来。

  2. 问题二:给定一个包含重复元素的列表,如何使用集合去除重复元素?

  3. 问题三:如何遍历字典,并打印出所有的键和值?

  4. 问题四:如何检查一个元素是否存在于列表或字典中?

  5. 问题五:如何实现一个栈的基本操作,包括压栈(push)、弹栈(pop),并打印栈顶元素?

  6. 问题六:如何使用队列来实现一个打印任务的顺序执行,任务按照先来先服务的原则进行?

  7. 问题七:如何使用字典来存储班级中学生的姓名和成绩,并打印出每个学生的姓名和对应的成绩?

  8. 问题八:如何反转一个列表或元组?

  9. 问题九:如何对列表中的元素进行排序?

  10. 问题十:如何合并两个列表或字典,并处理键的冲突?

通过解答这些问题,你将能够检验自己对Python数据结构的理解和应用能力。每个问题都设计有针对性,帮助你掌握不同数据结构的特点和适用场景。


数据结构基础
http://example.com/2024/06/21/关卡2:数据结构基础/
Beitragsautor
XiaoXiangHui
Veröffentlicht am
June 21, 2024
Urheberrechtshinweis