python-元组和字典的简单使用

news/发布时间2024/5/1 20:40:38

一、元组的使用

用来保存多个数据。

元组和列表的区别:列表是可变的,而元组是不可变数据类型(不可增加、修改)。

1、元组的定义

nums = (1,4,6,2,3)   # 元组,使用()来表示

如果元组只有一个元素,怎么表示呢

ages = (18,)   # 要在最后面添加 , 

2、元组的方法

count(x) :元组中 x  元素出现的次数

例如:nums = (1,4,6,2,3,5,5,5)

nums.count(9) # 输出  3

index(x)方法:元组中 x  元素的下标位置(如果x是重复的,则输出第一个x的下标位置)

例如:nums = (1,4,6,2,3,5,5,5)

nums.count(4) # 输出  1
nums.count(5) # 输出  5

3、元组和列表的转换

直接使用tuple(转换对象)方法,tuple list set 都是这样使用的

(1)列表 --> 元组

nums = (1,4,6,2,3)

print(tuple(nums))   # 输出 [1,4,6,2,3]

(2)元组 --> 列表

words = ["yes","hello","hi"]

print(tuple(words))   # 输出 ("yes","hello","hi") 

二、字典的使用

永远以键值对的方式出现;

1、特点和使用

(1). 字典是无序的,键值对的存放顺序不影响字典。例如 dict1={'A':'hello','B':'book','c':'cake'}  dict2={'c':'cake','A':'hello','B':'book'} dict1==dict2

(2). 字典可以使用哪些数据类型

键:可以存放不可变对象,比如字符串,数组,元组;不能存放可变对象,如:列表、字典

值:可以存放任意对象

2、字典的增删改

(1). 增加和修改是一样的方式

 1 def dict_update_operate():
 2     dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
 3     # 新增一个键值对
 4     dict1['E'] = 'emo'
 5     print(dict1)  # 执行的结果:{'A': 'apple', 'B': 'book', 'C': 'cake', 'E': 'emo'}
 6     # 单独只修改字典中的一个值
 7     dict1['B'] = 'black'
 8     print(dict1)  # 执行的结果:{'A': 'apple', 'B': 'black', 'C': 'cake', 'E': 'emo'}
 9     # update()方法可以同时添加和修改多个值
10     dict1.update({'A': 'angle', 'F': 'file'})
11     print(dict1)   # 执行的结果:{'A': 'angle', 'B': 'black', 'C': 'cake', 'E': 'emo', 'F': 'file'}

(2)删除

1 def dict_del_operate():
2     dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
3     del dict1['A'], dict1['C']
4     print(dict1)   # 执行的结果:{'B': 'book'}

(3)清空字典

1 def dict_empty_operate():
2     dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
3     print(id(dict1))   # 执行的结果:4433023168
4     # clear()方法,清空元组,该元组地址还在
5     dict1.clear()
6     # 相当于重新生成了一个字典,地址已经换了
7     dict1 = {}
8     print(id(dict1))   # 执行的结果:4433026688   与原地址不一样了

(4)根据键来 判断是否存在 在字典中

1 # 根据键来 判断是否存在 在字典中: in ,not in
2 def dict_exist_operate():
3     # 使用关键字:in ,not in
4     dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
5     print('B' in dict1)  # 执行的结果:True
6     print('E' not in dict1)  # 执行的结果:True

(5)字典的遍历

 1 # 遍历字典中的key,value
 2 def dict_ergodic_operate():
 3     dict1 = {'A': 'apple', 'B': 'book', 'C': 'cake'}
 4     # 遍历key
 5     for key in dict1.keys():
 6         print(key)   # 执行的结果:A B C
 7     # 遍历value
 8     for value in dict1.values():
 9         print(value)   # 执行的结果:apple book cake
10     # 遍历key 和 value
11     for key, value in dict1.items():
12         print("key:", key, "   value:", value)   
13         # 执行的结果如下:
14         # key: A value: apple
15         # key: B value: book
16         # key: C value: cake 

三、集合的使用

1、特点

集合是一种无序的、可变的数据结构,只能包含不可变的元素,例如整数、浮点数、字符串和元组等。

2、集合的增删改

# 创建空集合
s = set()
# 创建含有元素的集合
s = {1, 2, 3, 4}# 添加一个元素
s.add(5) 
# 添加多个元素
s.update([6, 7, 8]) # 移除一个元素,如果元素不存在会报错
s.remove(1) 
# 移除一个元素,如果元素不存在不会报错
s.discard(2) 
# 随机移除一个元素,并返回这个元素
s.pop() 
# 清空集合
s.clear() 
# 删除集合
del s 

3、集合的排序

sort()方法 # 永久排序

list.sort(reverse=True)  # 倒序排

sorted(list)  # 临时排序

sorted(list,reverse=True)  # 临时倒序排序

4、集合操作

t = {3, 4, 5, 6}s.union(t) # 并集
s | t # 并集

s.intersection(t) # 交集
s & t # 交集

s.difference(t) # 差集
s - t # 差集

s.symmetric_difference(t) # 对称差集
s ^ t # 对称差集

s.issubset(t) # 判断是否是子集
s <= t # 判断是否是子集

s.issuperset(t) # 判断是否是超集
s >= t # 判断是否是超集
s != t # 判断是否不等

 

5、集合的可变性

f = frozenset([1, 2, 3, 4]) # 创建一个不可变集合

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

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Python-数字取证秘籍(三)

Python 数字取证秘籍(三)原文:zh.annas-archive.org/md5/941c711b36df2129e5f7d215d3712f03 译者:飞龙 协议:CC BY-NC-SA 4.0第六章:阅读电子邮件和获取名称的配方 本章涵盖了以下配方:解析 EML 文件查看 MSG 文件订购外卖盒子里有什么?解析 PST 和 OST 邮箱介绍 一旦计…

一个.NET内置依赖注入的小型强化版

前言 .NET生态中有许多依赖注入容器。在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀。外加ASP.NET Core默认使用内置容器,使用很方便。 但是笔者在使用中一直有一个头疼的问题:服务工厂无法提供请求的服务类型相关的信息。这在一般情况下并没有影响,但是…

宝塔面板mysql无法启动问题如何解决

宝塔面板无法启动的问题和解决 如果你的宝塔里面的mysql无法启动了,请先看是不是以下的配置问题 1.是不是你的3306端口被占用了导致mysql无法启动 2.是不是磁盘空间不足导致的无法启动 如果都不是这些问题再继续向下看 常见问题: 1、Mysql安装好后或迁移文件后无法启动 2、My…

小程序上显示富文本

功能:富文本内容格式化、拿到富文本里的所有图片点击放大图片util.tsexport function formatRichText(html: any) { // 富文本内容格式化let arrText = html;//正则匹配不含style="" 或 style= 的img标签var regex1 = new RegExp("(i?)(\<img)(?!(.*?sty…

TPU-MLIR实现技术详细介绍

TPU-MLIR实现技术详细介绍 TPU-MLIR简介 后文假定用户已经处于docker里面的/workspace目录。 编译ONNX模型 以 yolov5s.onnx 为例, 介绍如何编译迁移一个onnx模型至BM1684X TPU平台运行。 该模型来自yolov5的官网: https://github.com/ultralytics/yolov5/releases/download/v6…

PostgreSQL源码学习 win10源码编译安装

源码学习的第一步是源码安装,只有用源码安装才能之后在此基础上阅读、调试、开发系统。 我这里安装的是PostgreSQL 13.2版本,其他版本大同小异,如有出入,以最新版本的文档为准:PostgreSQL最新版文档 一、下载源码 源码下载链接,内含各自版本的源码:PG源码 比如13.2版本的…