Python几种常用数据结构(重制版)

一、列表 List
  • 定义:有序可重复的数据集合。
  • 示例 :my_list = ['element1', 'element2', 'element3']
  • 增加元素方法 :
    • append():在列表末尾增加单个元素(列表特有方法),例如 my_list.append('element')。
    • extend():在列表末尾一次增加多个元素(列表特有方法),如 my_list.extend(['element4', 'element5'])。
    • insert():指定下标索引增加元素,像 my_list.insert(1, 'element')。
  • 删除元素方法 :
    • remove():移除指定元素,若元素不存在会报错,如 my_list.remove('element');可通过 try-except 结构处理元素不存在的情况。
    • 通过切片指定索引删除,例如 my_list[1:3] = []。
    • pop():删除指定下标索引的元素(空索引即末位删除),并返回被删元素,如 popped_element = my_list.pop(1)。
    • del:删除指定下标索引的元素(空索引即末位删除),像 del my_list[1]。
  • 修改元素方法 :通过指定索引修改元素,如 my_list[0] = 'modified_element'。
二、集合 {Set}
  • 定义:无序且元素唯一的数据集合。
  • 示例 :my_set = {'element1', 'element2', 'element3'}
  • 增加元素方法 :
    • add():增加单个元素(集合特有方法),例如 my_set.add('element')。
    • update():增加多个元素(集合和字典共用的方法),如 my_set.update(['element4', 'element5'])。
  • 删除元素方法 :
    • pop():随机删除元素。
    • discard():删除指定元素,不存在也不报错(集合特有方法),比如 my_set.discard('element');若使用 remove() 移除指定元素,元素不存在会报错,可通过 try-except 结构处理。
  • 修改元素:集合中元素具有唯一性,通常通过先删除旧元素再添加新元素来实现类似修改的操作。
三、字典 {Dictionary}
  • 定义:以键值对形式存储数据,键是唯一的。
  • 示例 :my_dict = {'key1': 'value1', 'key2': 'value2'}
  • 增加元素方法 :
    • 直接通过指定新键并赋值来增加单对键值,例如 my_dict['key3'] = 'value3'。
    • update():增加多对键值(集合和字典共用的方法),如 my_dict.update({'key4': 'value4', 'key5': 'value5'})。
  • 删除元素方法 :
    • del:删除指定键值,不返回被删键值,像 del my_dict['key3']。
    • pop():删除指定键值,返回被删键值,例如 value = my_dict.pop('key2')。
  • 修改元素方法 :通过指定键来修改对应的值,如 my_dict['key1'] = 'modified_value1'。
四、元组(Tuple)
  • 定义:有序且不可变的数据集合,适合存储不需要修改的数据。
  • 示例 :my_tuple = ('element1', 'element2', 'element3')
  • 修改元素方式 :元组本身不可直接修改,若需修改,可创建一个新的元组,比如 new_tuple = my_tuple[:1] + ('modified_element',) + my_tuple[2:];也可以先转换为列表进行修改后再转换回元组,像 my_list_from_tuple = list(my_tuple)。

延展:格式转化

当列表有重复元素,可利用集合唯一性去重

复制代码
my_list = ['element1', 'element2', 'element2', 'element3']  # 这里有重复元素的列表示例
# 先将列表转换为集合,利用集合元素唯一性的特点去重
unique_set = set(my_list)
# 再将去重后的集合转换回列表
new_list = list(unique_set)
print(new_list)
相关推荐
Wang's Blog6 分钟前
Java 项目实战: 交友项目 - 今日佳人:需求分析
java·开发语言·交友
老孟说禅8 分钟前
自动化测试入门(一)
开发语言·python
miofly15 分钟前
GitHub 今日推荐|Snapintosh:用 ARM EL2 监控器骗过内核,让骁龙芯片笔记本跑 macOS
python·开源·github
打工仔折腾 AI21 分钟前
Linux 网络编程:从零掌握 TCP Socket 编程与 C++ 实战落地
linux·网络·人工智能·后端·python·tcp/ip·性能优化
余额瞒着我当琳23 分钟前
C++11,发展历史浅谈,初始化列表和对象初始化,右值引用和移动语义
java·开发语言·c++·算法
学逆向的27 分钟前
C 宏函数
c语言·开发语言·网络安全
Code_Solitude29 分钟前
C语言:指针题型总结
c语言·开发语言
曹牧29 分钟前
Java:`tools.jar`
java·开发语言·jar
suhan35 分钟前
【数据结构】六、图:4.图的遍历(深度优先算法DFS、广度优先算法BFS)
数据结构·算法·排序算法