Python中的列表list字典dictionary及集合set基本方法总结

Python中的字典(dictionary)是一种无序的数据集合,其中的元素以键值对的形式存储,键必须是唯一的且不可变的,而值则可以是任意类型的数据。以下是字典的基本方法:

1. `dict.clear()`: 清空字典,删除所有的元素。
2. `dict.copy()`: 返回字典的一个浅拷贝。
3. `dict.fromkeys(iterable, value=None)`: 创建一个新字典,其中包含指定可迭代对象中的元素作为键,并将它们的值设置为一个指定的值(默认为None)。
4. `dict.get(key, default=None)`: 返回指定键的值,如果键不存在,则返回默认值。
5. `dict.items()`: 返回字典的键值对视图。
6. `dict.keys()`: 返回字典的键视图。
7. `dict.values()`: 返回字典的值视图。

8. `dict.pop(key, default=None)`: 删除并返回指定键的值,如果键不存在,则返回默认值。
9. `dict.popitem()`: 随机删除并返回字典中的一对键值对(Python 3.7及以上版本中删除的是最后一个键值对)。
10. `dict.setdefault(key, default=None)`: 如果键存在于字典中,则返回其值,否则将键插入字典并设置默认值。
11. `dict.update(iterable)`: 更新字典中的键值对,可以使用另一个字典或包含键值对的迭代器。
12. `dict.fromkeys(keys[, value])`: 创建一个新字典,其中包含指定的键,并将它们的值设置为一个指定的值(默认为None)。

这些方法可以让你对字典进行增加、删除、查找和更新等操作。以下是一些字典方法的示例用法:

# 创建一个字典
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 使用get()方法获取指定键的值
age = my_dict.get('age')
print("Age:", age)  # 输出: Age: 30

# 使用items()方法获取键值对视图
items = my_dict.items()
print("Items:", items)  # 输出: Items: dict_items([('name', 'Alice'), ('age', 30), ('city', 'New York')])

# 使用keys()方法获取键视图
keys = my_dict.keys()
print("Keys:", keys)  # 输出: Keys: dict_keys(['name', 'age', 'city'])

# 使用values()方法获取值视图
values = my_dict.values()
print("Values:", values)  # 输出: Values: dict_values(['Alice', 30, 'New York'])

# 使用pop()方法删除并返回指定键的值
city = my_dict.pop('city')
print("Removed city:", city)
print("Dictionary after popping 'city':", my_dict)  # 输出: Dictionary after popping 'city': {'name': 'Alice', 'age': 30}

# 使用popitem()方法删除并返回随机键值对
removed_item = my_dict.popitem()
print("Removed item:", removed_item)
print("Dictionary after popping item:", my_dict)  # 输出: Dictionary after popping item: {'name': 'Alice'}

# 使用setdefault()方法获取键的值,如果键不存在则插入新的键值对
country = my_dict.setdefault('country', 'USA')
print("Country:", country)
print("Dictionary after setting default:", my_dict)  # 输出: Dictionary after setting default: {'name': 'Alice', 'country': 'USA'}

# 使用update()方法更新字典中的键值对
my_dict.update({'age': 31, 'city': 'San Francisco'})
print("Updated dictionary:", my_dict)  # 输出: Updated dictionary: {'name': 'Alice', 'country': 'USA', 'age': 31, 'city': 'San Francisco'}

Python中的列表(list)是一种有序的集合,它可以容纳任意数量的元素,并且可以修改。下面是一些常用的列表方法:

1. `append(x)`: 在列表末尾添加一个元素 `x`。
2. `extend(iterable)`: 在列表末尾一次性追加另一个序列(可迭代对象)中的多个值。
3. `insert(i, x)`: 在指定位置 `i` 插入元素 `x`。
4. `remove(x)`: 移除列表中第一个值为 `x` 的元素。如果没有这样的元素,则会引发 ValueError。
5. `pop([i])`: 移除并返回指定位置 `i` 处的元素。如果未指定 `i`,则移除并返回最后一个元素。
6. `clear()`: 移除列表中的所有元素,等效于 `del list[:]`。
7. `index(x[, start[, end]])`: 返回第一个值为 `x` 的元素的索引。可选参数 `start` 和 `end` 用于指定搜索的范围。
8. `count(x)`: 返回值为 `x` 的元素在列表中的个数。
9. `sort(key=None, reverse=False)`: 对列表进行排序。可选参数 `key` 用于指定排序的关键字函数,`reverse` 用于控制升序或降序,默认升序。
10. `reverse()`: 将列表中的元素反转。
11. `copy()`: 返回列表的一个浅拷贝。

这些是最常用的列表方法,它们可以帮助你在处理列表时进行增加、删除、排序等操作。

# 创建一个空列表
my_list = []

# 使用append()方法向列表中添加元素
my_list.append(1)
my_list.append(2)
my_list.append(3)
print("After appending elements:", my_list)  # 输出: [1, 2, 3]

# 使用extend()方法一次性追加另一个列表中的多个值
my_list.extend([4, 5, 6])
print("After extending elements:", my_list)  # 输出: [1, 2, 3, 4, 5, 6]

# 使用insert()方法在指定位置插入元素
my_list.insert(2, 100)
print("After inserting element at index 2:", my_list)  # 输出: [1, 2, 100, 3, 4, 5, 6]

# 使用remove()方法移除指定值的元素
my_list.remove(100)
print("After removing element 100:", my_list)  # 输出: [1, 2, 3, 4, 5, 6]

# 使用pop()方法移除并返回指定位置的元素
popped_element = my_list.pop(0)
print("Popped element:", popped_element)
print("After popping element at index 0:", my_list)  # 输出: [2, 3, 4, 5, 6]

# 使用clear()方法清空列表
my_list.clear()
print("After clearing the list:", my_list)  # 输出: []

# 创建一个新的列表
new_list = [1, 2, 3, 4, 5, 4, 3, 2, 1]

# 使用index()方法查找元素的索引
index = new_list.index(3)
print("Index of element 3:", index)  # 输出: 2

# 使用count()方法统计元素出现的次数
count = new_list.count(4)
print("Count of element 4:", count)  # 输出: 2

# 使用sort()方法对列表进行排序
new_list.sort()
print("Sorted list:", new_list)  # 输出: [1, 1, 2, 2, 3, 3, 4, 4, 5]

# 使用reverse()方法反转列表中的元素
new_list.reverse()
print("Reversed list:", new_list)  # 输出: [5, 4, 4, 3, 3, 2, 2, 1, 1]

# 使用copy()方法创建列表的浅拷贝
copied_list = new_list.copy()
print("Copied list:", copied_list)  # 输出: [5, 4, 4, 3, 3, 2, 2, 1, 1]

 --------

集合(set)是 Python 中的一种数据类型,它是一个无序且不重复的集合。这里简略归纳一些常用的集合方法:

1. 添加元素:
   - `add(element)`: 向集合中添加一个元素。
   - `update(iterable)`: 将一个可迭代对象中的所有元素添加到集合中。

2. 删除元素:
   - `remove(element)`: 从集合中删除指定的元素,如果元素不存在则会引发 KeyError 异常。
   - `discard(element)`: 从集合中删除指定的元素,如果元素不存在也不会引发异常。
   - `pop()`: 移除并返回集合中的任意一个元素,如果集合为空则引发 KeyError 异常。
   - `clear()`: 清空集合,移除其中的所有元素。

3. 集合运算:
   - `union(other_set)`: 返回一个包含两个集合所有元素的新集合(并集)。
   - `intersection(other_set)`: 返回一个包含两个集合共有元素的新集合(交集)。
   - `difference(other_set)`: 返回一个包含存在于第一个集合但不存在于第二个集合的元素的新集合(差集)。
   - `symmetric_difference(other_set)`: 返回一个包含存在于两个集合中的但不属于两者交集的元素的新集合(对称差集)。

4. 集合查询:
   - `len(set)`: 返回集合中元素的数量。
   - `element in set`: 检查集合中是否存在指定的元素,如果存在返回 True,否则返回 False。

这些是集合对象中一些常用的方法,它们使得对集合进行操作和查询变得非常方便。

# 创建两个集合
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

# 添加元素
set1.add(5)  # {1, 2, 3, 4, 5}
set1.update([6, 7])  # {1, 2, 3, 4, 5, 6, 7}

# 删除元素
set1.remove(7)  # {1, 2, 3, 4, 5, 6}
set1.discard(6)  # {1, 2, 3, 4, 5}
set1.pop()  # 返回移除的元素,可能是任意的 {2, 3, 4, 5},剩余元素为 {3, 4, 5}
set1.clear()  # 清空集合,变为空集合 set()

# 集合运算
union_set = set1.union(set2)  # {3, 4, 5, 6}
intersection_set = set1.intersection(set2)  # {}
difference_set = set1.difference(set2)  # {}
symmetric_difference_set = set1.symmetric_difference(set2)  # {1, 2, 5, 6}

# 集合查询
print(len(set1))  # 0
print(3 in set2)  # True

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

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

相关文章

Linux基本指令(2)

目录 mv指令: cat: more指令: less指令: head指令: tail指令: mv指令: 说明: mv命令是move的缩写,可以用来移动文件或者文件改名(move(rename)files),是linux系统下…

LMDeploy 量化部署 LLM-VLM 实践 学习笔记

视频链接 https://www.bilibili.com/video/BV1tr421x75B/?vd_sourcea1ce254b4a97f9f687a83e661793cb2c 什么是模型部署 部署指的是已经开发好的大模型投入使用,要把模型部署到服务器或者移动端里,如何在有限的资源里加载大模型? 比如你好不…

2024年信息教育化与语言艺术国际学术会议(IACIELA 2024)

2024年信息教育化与语言艺术国际学术会议(IACIELA 2024) 2024 International Conference on Information Education and Language Art 一、【会议简介】 2024年信息教育化与语言艺术国际学术会议,将探讨教育与语言艺术的结合。 在当今的信息时代,语言艺术…

ElasticSearch批处理

在刚才的新增当中,我们是一次新增一条数据。那么如果你将来的数据库里有数千上万的数据,你一次新增一个,那得多麻烦。所以我们还要学习一下批量导入功能。 也就是说批量的把数据库的数据写入索引库。那这里的需求是,首先利用mybat…

C#基础|StringBuilder字符串如何高效处理。

哈喽,你好,我是雷工。 字符串处理在C#程序开发中是使用频率比较高的,但常规的字符串处理方式对内存占用比较多,为了优化内存,减少不必要的内存浪费,引入了StringBuilder类。 下面学习下StringBuilder类的使…

牛客NC99 多叉树的直径【较难 深度优先 Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/a77b4f3d84bf4a7891519ffee9376df3 思路 核心就是树的最大直径(globalMax)一定是以某一个node为root最长的两个path-to-leaf. 就是普通dfs的同时算路径长度。时间: O(n), DFS一次 空间: O(n)参考答案Java impo…

(二十一)C++自制植物大战僵尸游戏僵尸游戏关卡结束数据处理

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs 文件位置 代码实现的文件在Class\Scenes\GameScene文件夹中,如下图所示。 GameEndLayer.h class GSGameEndLayer :public LayerColor { public:CREATE_FUNC(GSGameEndLayer);void successfullEntry();void brea…

大田场景下的路径检测论文汇总

文章目录 2020Visual Servoing-based Navigation for Monitoring Row-Crop Fields 2020 Visual Servoing-based Navigation for Monitoring Row-Crop Fields code: https://github.com/PRBonn/visual-crop-row-navigation 摘要: 自主导航是野外机器人执行精确农业…

C++ day5

#include <iostream> using namespace std; class Person {string name;int *age; public:Person():name("zhangsan"),age(new int(18)){cout << "Person的无参构造" << endl;}Person(string name,int age):name("zhangsan"),…

喜报!得帆被评为2024年上海市重点服务独角兽企业

月23日&#xff0c;在市经济信息化委和闵行区政府指导下“2024年上海市重点服务独角兽&#xff08;潜力&#xff09;企业榜单发布会暨高质量发展产业对接会”在上海成功举办。 会上正式公布《2024年上海市重点服务独角兽&#xff08;潜力&#xff09;企业榜单》&#xff0c;上…

08_Scala函数式编程重点

文章目录 函数式编程1.创建简单函数2.可变参数3.默认参数4.函数式编程&#xff0c;代码简化 函数式编程 函数式编程是对功能进行封装&#xff0c;最终是需要等号 def test() {} //于python略有不同1.创建简单函数 // 1.定义函数def test(): Unit {}牛逼之处就是可以在m…

由于找不到msvcr120.dll,无法继续执行代码

在日常编程中&#xff0c;缺少关键的msvcr120.dll文件可能会导致代码无法执行&#xff0c;给我们带来不便。针对缺少msvcr120.dll文件的情况&#xff0c;我们可以采取一些有效的解决方法来解决这一问题。通过下载安装或使用Visual C Redistributable工具安装该msvcr120.dll文件…

数据结构四:线性表之带头结点的单向循环链表的设计

前面两篇介绍了线性表的顺序和链式存储结构&#xff0c;其中链式存储结构为单向链表&#xff08;即一个方向的有限长度、不循环的链表&#xff09;&#xff0c;对于单链表&#xff0c;由于每个节点只存储了向后的结点的地址&#xff0c;到了尾巴结点就停止了向后链的操作。也就…

STM32G431RBT6之LCD与LED配置

首先,配置时钟树,时钟树的配置在我的另外一篇博客里,这里不再赘述. LCD与LED具有共同的IO口,同时创建工程较好. 打开原理图,发现LED的IO口是PC8~PC15,还有一个容易看漏的PD2.LCD的IO口是PC0到PC15. 当然,看产品手册也可以知道,但是还是推荐大家看原理图. 打开cubumx,给PC0~PC…

如何讲好ppt演讲技巧(4篇)

如何讲好ppt演讲技巧&#xff08;4篇&#xff09; 如何讲好PPT演讲技巧&#xff08;四篇&#xff09; **篇&#xff1a;精心准备&#xff0c;奠定演讲基础 一个成功的PPT演讲&#xff0c;离不开精心的准备。首先&#xff0c;要确定演讲的主题和目标&#xff0c;确保演讲内容清…

应用实战|只需几步,即可享有外卖订餐小程序

本示例是一个简单的外卖查看店铺点菜的外卖微信小程序&#xff0c;小程序后端服务使用了MemFire Cloud&#xff0c;其中使用到的MemFire Cloud功能包括&#xff1a; 其中使用到的MemFire Cloud功能包括&#xff1a; 云数据库&#xff1a;存储外卖微信小程序所有数据表的信息。…

服务端不 listen 可以创建 tcp 连接吗

这个问题有三类答案。 上来就撸 linux kernel 源码&#xff0c;折腾半天&#xff0c;哦&#xff0c;终于在 tcp_rcv_state_process 里找到了 tcp_rcv_synsent_state_process 调用&#xff0c;后者包含&#xff1a; if (th->syn) {/* We see SYN without ACK. It is attemp…

前端JS必用工具【js-tool-big-box】,Number数值转换的方法调用学习

这一小节&#xff0c;我们针对前端工具包&#xff08;npm&#xff09;js-tool-big-box的使用做一些讲解&#xff0c;主要是针对Number数值型转换的一些方法使用。 目录 前言 1 安装和引入 2 千位逗号分割 3 判断是否大于0 4 判断是否大于0的整数 5 生成指定范围内的随机数…

leetcode 循环列表的插入(Python)

题目如果不进行思考&#xff0c;巨多坑。 首先我们需要找到列表中的最小值&#xff0c;最大值这个节点&#xff0c;因为找到后可以与我们的新元素进行比较厚插入。 找到最小值&#xff0c;最大值需要循环一遍列表&#xff0c;如果当前cur元素的值<nex元素的值&#xff0c;…

堆的应用——堆排序

堆排序 堆排序是一种基于比较的排序算法&#xff0c;它利用堆这种数据结构所设计。堆是一个近似完全二叉树的结构&#xff0c;并同时满足堆积的性质&#xff1a;即子结点的键值或索引总是小于&#xff08;或者大于&#xff09;它的父结点。 堆排序可以分为两个主要步骤&#…