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)
相关推荐
databook1 小时前
使用 SciPy 库进行时间序列分析
python·数据分析·scipy
java资料站1 小时前
十一、评估测试
开发语言·人工智能·python
szial2 小时前
网络爬虫与 CDP 实战(二):浏览器能访问,Python 却被拒绝?拆开登录态与 CSRF
爬虫·python·csrf
左手の明天2 小时前
SLIP 协议封装与解析详解:原理、C 代码与实战案例
linux·c语言·开发语言·c++
nhdh2 小时前
B+树揭秘:MySQL索引核心原理全解析
数据结构·b树·mysql
海上小飞龙2 小时前
【KMP算法-下篇】同一道题:Java 库函数 2600 微秒,手写 KMP 16 微秒
java·开发语言·算法
青少儿编程课堂3 小时前
后缀自动机解析:本质不同子串与最长重复片段统计
c++·python·算法·bfs·信息学竞赛
朝朝辞暮i3 小时前
C++ 第 12 课:局部变量、作用域、变量生命周期
开发语言·c++·算法
狗凯之家源码网3 小时前
淘客口令落地页生成器 PHP 版深度评测
开发语言·php
画绛集美术3 小时前
本地化部署LLM用于美术史问答:一间美术教室的实践记录
开发语言·php