python列表、元组、集合、字典整理

特征对比

下面是Python中列表、元组、集合和字典的特征对比表格:

特征列表 (List)元组 (Tuple)集合 (Set)字典 (Dictionary)
定义符号[ ]( ){ }{ }
可变性可变不可变可变可变
有序性有序有序无序无序
元素访问通过索引访问,索引从0开始通过索引访问,索引从0开始不支持索引访问通过键访问
元素类型可以包含任意类型的元素可以包含任意类型的元素可以包含任意类型的元素键必须是不可变类型,值可以是任意类型
声明示例my_list = [1, 'apple', True]my_tuple = (1, 'apple', True)my_set = {1, 'apple', True}my_dict = {'name': 'Alice', 'age': 30}
可变操作添加、删除、修改元素不支持添加、删除、修改元素添加、删除元素添加、删除、修改键值对

说明:

  • 可变性:列表、集合和字典是可变的,可以通过增删改操作来修改其内容;元组是不可变的,一旦创建后不能被修改。
  • 有序性:列表和元组是有序的,元素按照插入顺序排列;集合和字典是无序的,元素没有固定顺序。
  • 元素访问:列表和元组可以通过索引访问元素;集合不支持索引访问,只能通过迭代或特定方法访问元素;字典通过键来访问对应的值。
  • 元素类型:列表、元组、集合和字典都可以包含任意类型的元素;字典中的键必须是不可变类型,而值可以是任意类型。
  • 声明示例:各种数据结构的声明方式和示例。
  • 可变操作:列表可以进行添加、删除、修改等操作;元组不能进行任何修改操作;集合可以进行添加和删除元素的操作;字典可以进行添加、删除和修改。

常用方法

列表 (List)

方法描述参数说明使用示例
append(x)在列表末尾添加元素 xx:要添加的元素my_list.append(10)
extend(iterable)将可迭代对象 iterable 的元素添加到列表末尾。iterable:一个可迭代对象,如列表、元组等my_list.extend([20, 30])
insert(i, x)在索引 i 处插入元素 xi:要插入的索引位置; x:要插入的元素my_list.insert(1, 'apple')
remove(x)移除列表中第一个值为 x 的元素。x:要移除的元素my_list.remove('apple')
pop([i])移除并返回索引为 i 处的元素。如果未指定索引,默认移除并返回最后一个元素。i:可选的索引位置my_list.pop()my_list.pop(0)
clear()移除列表中的所有元素。无参数my_list.clear()
index(x)返回第一个值为 x 的元素的索引。x:要查找的元素my_list.index('apple')
count(x)返回值为 x 的元素在列表中出现的次数。x:要计数的元素my_list.count('apple')
sort(key=None, reverse=False)对列表进行排序。key:排序的规则函数; reverse:是否逆序排序my_list.sort(reverse=True)
reverse()反转列表中的元素。无参数my_list.reverse()
copy()返回列表的浅拷贝。无参数new_list = my_list.copy()

元组 (Tuple)

元组是不可变的,因此没有修改元素的方法。

方法描述参数说明使用示例
count(x)返回值为 x 的元素在元组中出现的次数。x:要计数的元素my_tuple.count('apple')
index(x)返回第一个值为 x 的元素的索引。x:要查找的元素my_tuple.index('apple')

集合 (Set)

方法描述参数说明使用示例
add(x)向集合中添加元素 xx:要添加的元素my_set.add(10)
update(iterable)将可迭代对象 iterable 的元素添加到集合中。iterable:一个可迭代对象,如列表、元组等my_set.update([20, 30])
remove(x)移除集合中的元素 x,如果不存在会抛出 KeyError。x:要移除的元素my_set.remove('apple')
discard(x)移除集合中的元素 x,如果不存在不会抛出异常。x:要移除的元素my_set.discard('apple')
pop()随机移除并返回集合中的一个元素。无参数my_set.pop()
clear()移除集合中的所有元素。无参数my_set.clear()
union(*others)返回一个新集合,包含所有集合和可迭代对象 others 中的元素。others:一个或多个集合或可迭代对象new_set = my_set.union(other_set)
intersection(*others)返回一个新集合,包含所有集合和可迭代对象 others 中共同的元素。others:一个或多个集合或可迭代对象new_set = my_set.intersection(other_set)
difference(*others)返回一个新集合,包含所有在当前集合中但不在可迭代对象 others 中的元素。others:一个或多个集合或可迭代对象new_set = my_set.difference(other_set)
symmetric_difference(other)返回一个新集合,包含所有在当前集合或 other 中,但不同时在两者中的元素。other:另一个集合或可迭代对象new_set = my_set.symmetric_difference(other_set)

字典 (Dictionary)

方法描述参数说明使用示例
clear()移除字典中的所有元素。无参数my_dict.clear()
copy()返回字典的浅拷贝。无参数new_dict = my_dict.copy()
fromkeys(keys, value=None)创建一个新字典,使用 keys 中的元素作为键,value 作为值(默认为 None)。keys:作为键的可迭代对象; value:作为值的默认值new_dict = dict.fromkeys(['name', 'age'], 'unknown')
get(key, default=None)返回键 key 对应的值,如果键不存在则返回 defaultkey:要获取值的键; default:键不存在时返回的默认值value = my_dict.get('name', 'Unknown')
items()返回字典的键值对视图。无参数items_view = my_dict.items()
keys()返回字典的键视图。无参数keys_view = my_dict.keys()
values()返回字典的值视图。无参数values_view = my_dict.values()
pop(key, default=None)移除并返回键为 key 的元素,如果键不存在则返回 defaultkey:要移除的键; default:键不存在时返回的默认值value = my_dict.pop('name', 'Unknown')
popitem()移除并返回任意一个键值对元组。无参数key_value_pair = my_dict.popitem()
setdefault(key, default=None)返回键 key 对应的值,如果键不存在则将 default 设为该键的值并返回。key:要获取值的键; default:键不存在时设置的默认值value = my_dict.setdefault('name', 'Unknown')
update([other])更新字典,将另一个字典或可迭代对象 other 的键值对添加到当前字典中。other:一个字典或可迭代对象my_dict.update({'name': 'Alice', 'age': 30})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/766466.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间

在快节奏的软件开发世界中,效率和速度起着重要作用。对于开发人员来说,设置开发环境可能是一项耗时的任务。GitHub Codespaces 是一个基于云的环境,旨在通过提供对配置设置的访问来应对这一挑战。 本指南将帮助你开始使用 GitHub Codespaces …

Spring boot 更改启动LOGO

在resources目录下创建banner.txt文件,然后编辑对应的图案即可 注释工具 Spring Boot Version: ${spring-boot.version},-.___,---.__ /|\ __,---,___,- \ -.____,- | -.____,- // -., | ~\ /~ | …

【面试干货】值传递与引用传递:理解Java中的参数传递机制

【面试干货】值传递与引用传递:理解Java中的参数传递机制 1、值传递(Call by Value)2、引用传递(Call by Reference)3、总结 💖The Begin💖点点关注,收藏不迷路💖 值传递…

【Python】已解决:ERROR: No matching distribution found for JPype1

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:ERROR: No matching distribution found for JPype1 一、分析问题背景 在安装Python的第三方库时,有时会遇到“ERROR: No matching distribution fo…

金融科技在反洗钱领域的创新应用

随着金融市场的不断发展和全球化趋势的加速,洗钱活动日益猖獗,给金融机构和社会经济安全带来了严重威胁。为了有效应对这一挑战,金融科技在反洗钱领域的应用逐渐崭露头角,为打击洗钱活动提供了强有力的技术支持。本文将从多个角度…

Python编写简单爬虫

文章目录 Python编写简单爬虫安装必要的库编写爬虫代码解析和存储数据注意事项 Python编写简单爬虫 安装必要的库 在开始编写爬虫之前,你需要安装一些必要的库。我们将使用requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML内容。你可以使用以下…

气象观测站应设置在何处:选址的科学与策略

气象观测站在现代社会中扮演着至关重要的角色,它们不仅是气象数据的收集中心,也是气象预报和灾害预警的基础。然而,一个成功的气象观测站,其选址并不是随意的,而是需要综合考虑多种因素,以确保数据的准确性…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《面向电网调峰的电动汽车聚合商多层级实时控制策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

编译调试swift5.7源码

环境: 电脑:apple m1 pro系统:macOS13Xcode: 14.2Cmake: 3.25.1Ninja: 1.11.1sccache: 0.3.3python: 3.10 (如果你的mac不是这个版本,可以通过 brew install python3.10下载,然后看这篇文章切换到该python版本)swift代…

SQL语言基础特点、数据库系统

一、SQL的概述 (1) SQL全称: Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。 (2)SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公…

Ubuntu20.04 有线网络图标消失解决方案

Ubuntu20.04 有线网络图标消失解决方案 问题描述: ubuntu20.04系统提示的software updater有软件包更新,按提示安装更新软件包,重启系统后,ubuntu系统的网络图标消失不见;无法正常上网;检查网口&#xff0…

llm学习-4(llm和langchain)

langchain说明文档:langchain 0.2.6 — 🦜🔗 langChain 0.2.6https://api.python.langchain.com/en/latest/langchain_api_reference.html#module-langchain.chat_models 1:模型 (1)自定义模型导入&#x…

计算机网络网络层复习题1

一. 单选题(共27题) 1. (单选题)以太网 MAC 地址、IPv4 地址、IPv6 地址的地址空间大小分别是( )。 A. 2^48,2^32,2^128B. 2^32,2^32,2^96C. 2^16,2^56,2^6…

SpringCloud基础篇

文章目录 创建新模块拷贝yml配置文件修改配置文件的信息修改pom.xml文件启动入口拷贝相关文件接口文档配置配置启动项注册中心原理Nacos注册中心创建nacos数据库存储数据部署nacos在docker容器中 服务注册引入依赖配置Nacos地址启动 服务发现(调用)引入依赖配置nacos地址发现并…

OK527N-C开发板-简单的性能测试

OK527N-C CoreMark 获取CoreMark源码 首先使用Git克隆仓库: git clone https://github.com/eembc/coremark.git cd coremark修改Makefile 首先复制文件夹 cp -rf posix ok527之后修改ok527文件夹下的core_portme.mak文件,将CC修改如下 CC aarch6…

全国1:100万地貌类型空间分布数据

我们在《136G全国1m土地覆盖数据》一文中,为你分享了全国1米分辨率的土地覆盖数据。 现在再为你分享全国1:100万地貌类型空间分布数据,你可以在文末查看该数据的领取方式。 全国1:100万地貌类型空间分布数据 全国1:100万地貌类型空间分布数据来源于《…

【QT】多元素控件

目录 概述 List Widget 核心属性 核心方法 核心信号 QListWidgetItem核心方法 Table Widget 核心方法 QTableWidgetItem 核心信号 QTableWidgetItem 核心方法 使用示例: Tree Widget 核心方法 核心信号 QTreeWidgetItem核心属性 QTreeWidgetItem核…

(九)绘制彩色三角形

前面的学习中并未涉及到颜色&#xff0c;现在打算写一个例子&#xff0c;在顶点着色器和片元着色器中加入颜色&#xff0c;绘制有颜色的三角形。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostream>void …

13-4 GPT-5:博士级AI,人工智能的新时代

图片来源&#xff1a;AI Disruptive 人工智能世界正在迅速发展&#xff0c;新的创新和突破层出不穷。在本文中&#xff0c;我们将深入探讨最新的进展&#xff0c;从即将推出的 GPT-5 模型到 Apple 和 Meta 之间可能的合作。 GPT-5&#xff1a;博士级别的人工智能 虽然尚未正…