python基础——数据容器总结、通用方法和相互转换

📝前言:
在前段时间我们已经把python中常见的五大数据容器:列表、元组、字符串、集合、字典学习完了。
这篇文章主要对刚学习过的五大数据容器的特点做个总结,以及再介绍几个通用方法和它们之间相互转化的方法:
1,特点区分
2,通用方法
3,互相转换

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:山穷水复疑无路,柳暗花明又一村


文章目录

  • 一、特点总结
  • 二,通用方法
    • 1,sorted排序功能
      • (1)基本实例
      • (2)使用reverse参数
      • (3)使用key参数
    • 2,max和min函数
  • 三,相互转换
    • 1,示例(转列表):
    • 2,示例(转字符串):
    • 3,结合zip转字典
  • 四,总结

一、特点总结

在这里插入图片描述

这里是引用

二,通用方法

1,sorted排序功能

sorted() 是 Python 内置函数,用于对可迭代对象进行排序,如列表、元组(tuple)或字典(dict)
返回一个新的已排序列表,而原列表保持不变。
基本语法:

sorted(iterable, *, key=None, reverse=False)

iterable:需要排序的可迭代对象。
key:用于定义排序的键函数。可以使用 key 参数来指定一个函数,该函数将在比较元素之前应用于每个元素。最后返回的值就是排序的新依据
(如果 key 参数指定了一个函数,那么这个函数应该只接受一个参数并返回一个值,该值将用于排序。)
reverse:排序顺序。如果设置为 True,则列表将以降序排序。

(1)基本实例

list = [1,4,2,5,6]
tuple =(1,4,2,5,6)
str = "14256"
set = {1,4,2,5,6}
dict = {'c':1, 'a':3, 'b':2 }print(sorted(list))
print(sorted(tuple))
print(sorted(str))
print(sorted(set))
print(sorted(dict))

输出结果:
在这里插入图片描述
值得注意的是:
1,排序完以后都是返回一个新的列表
2,字符串会被拆分成每个字符为一个元素
3,字典默认会根据它的键的字符串来排序

(2)使用reverse参数

data = [3, 1, 2, 4, 5]
sorted_data = sorted(data, reverse=True)
print(sorted_data)  # 输出: [5, 4, 3, 2, 1]

(3)使用key参数

示例一:

# 定义一个字典,其中包含学生姓名和分数
students = [{"name": "Alice", "score": 85},{"name": "Bob", "score": 90},{"name": "Charlie", "score": 80}
]# 按分数降序排序
sorted_students = sorted(students, key=lambda x: x["score"], reverse=True)
print(sorted_students)
# 输出: [{'name': 'Bob', 'score': 90}, {'name': 'Alice', 'score': 85}, {'name': 'Charlie', 'score': 80}]

示例二:

# 通过key函数,根据元素的倒数对元素进行排序(因为是升序:倒数小的在前)
list = [1,4,2,5,6]
print(sorted(list, key= lambda x: 1/x))
# 输出结果:[6, 5, 4, 2, 1]

2,max和min函数

在 Python 中,maxmin 是内置函数,用于查找序列(如列表、元组、字符串等)中的最大和最小元素。
示例:

list = [1,4,2,5,6]
tuple =(1,4,2,5,6)
str = "14256"
set = {1,4,2,5,6}
dict = {'c':1, 'b':3, 'a':2 }print(max(list), min(list))
print(max(tuple), min(tuple))
print(max(str), min(str))
print(max(set), min(set))
print(max(dict), min(dict))

输出:
在这里插入图片描述
注意:对字典使用的时候,也是根据键所代表的字符串

三,相互转换

转列表:list(), 转元组:tuple(),转字符串:str(),转集合:set()
因为字典的元素是键值对,所以一般无法直接转换成字典
(注意:转换后是返回一个新的,而不是在原有的数据容器上进行修改)

在这些数据容器进行转换的时候,需要注意:
一,转列表,元组,集合( list()tuple()set() ):
1,字符串转列表,元组或集合:会将字符串中每一个字符作为一个元素
2,字典转列表,元组或集合,会抛弃value, 留下的每一个key作为一个元素,但是也可以通过values()得到全部键以后,在将其转换成列表
3,转集合后,元素会变得无序
二,转字符串
是整体直接加双引号变成字符串,如:
[1,2,3,4,5] 变成: “[1,2,3,4,5]”
(1,2,3,4,5) 变成:“(1,2,3,4,5)”

1,示例(转列表):

my_list = [1,4,2,5,6]
my_tuple =(1,4,2,5,6)
my_str = "14256"
my_set = {1,4,2,5,6}
my_dict = {'c':1, 'b':3, 'a':2 }print(list(my_tuple))
print(list(my_str))
print(list(my_set))
print(list(my_dict))

输出:
在这里插入图片描述

2,示例(转字符串):

my_list = [1,4,2,5,6]
my_tuple =(1,4,2,5,6)print(str(my_list), str(my_list)[0], str(my_list)[2], str(my_list)[3])
print(str(my_tuple), str(my_tuple)[0], str(my_tuple)[2], str(my_tuple)[3])

输出:
在这里插入图片描述

可见:确实是将一个整体变成了字符串(还有空格)

3,结合zip转字典

zip() 函数是 Python 的一个内置函数,用于将两个或多个可迭代对象(如列表、元组或字符串)的元素组合成一个新的迭代器。每次迭代会返回一个元组,其中的元素分别来自各个输入可迭代对象。

基本语法:

zip(*iterables)

其中 *iterables 表示要组合的输入可迭代对象。
示例:

keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict(zip(keys, values))
print(d)
# 输出:{'a': 1, 'b': 2, 'c': 3}

四,总结

先对操作方法进行总结:
在这里插入图片描述
对是否返回新的进行讨论:

1, 列表:基本上都是直接在原列表的基础上修改(无返回)
2, 元组(不可修改的list)除去list中对元素进行修改的操作,[但是可以对元组里面的元素list的元素进行修改]
3, 字符串:不可修改,基本上都是得到新的字符串
4, 集合:可修改,直接对原来的修改。但是union和difference是返回新集合。difference_update则是对集合1进行修改
5, 字典:可修改,直接对原来的修改,但是字典中的keys和values功能,会返回一个收集了全部键or值的数据容器
6, 切片操作(序列:列表,元组,字符串可用):从原序列里面找到一个子序列,并返回这个子序列(新)
7, 类型转换:list()、tuple()、str() 和 set() 这些函数在转换或创建新的对象时,都会返回一个新的对象,而不是在原地修改原始对象。


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

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

相关文章

Python Qt Designer 初探

代码下载在最下面 #开发环境安装# 本示例在Windows11下, 使用VSCode开发, Python 3.12.2, Qt Designer 5.11 VSCode插件Python、Python Debugger、PYQT Integration、Pylance (准备) VSCode自行官网下载 Visual Studio Code - Code Editing. Redefined (准备) Python 直接…

体育竞赛成绩管理系统设计与实现|jsp+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,…

NLP 笔记:Latent Dirichlet Allocation (介绍篇)

1 问题介绍 假设我们有一堆新闻,每个新闻都有≥1个主题 我们现在只知道新闻的内容,我们希望一个算法,帮我们把这些新闻分类成主题人类可以根据每个每个文章里面的单词判断主题,那计算机怎么做呢? ——>LDA(Latent D…

如何申请香港信用卡?

第一种方法就是申请香港的虚拟卡 在线上申请,方便快捷,下卡快,可以绑定香港apple id,香港paypal等等 点击获取线上香港信用卡 第二种线下办理方法 如何申请香港个人卡 香港个人银行卡(等同于大陆的借记卡9),开户限制…

K8S--SpringCloud应用整合Nacos实战

原文网址:K8S--SpringCloud应用整合Nacos实战-CSDN博客 简介 本文介绍K8S部署SpringCloud应用整合Nacos实战。 本文是将原来的SpringCloud项目(闪速优选)迁移到K8S上,一行代码都不需要改动。用K8S运行Nacos、Gateway、SpringCl…

Stable Diffusion 本地训练端口与云端训练端口冲突解决办法

方法之一,修改本地训练所用的端口 1 首先,进入脚本训练器的根目录 例如:C:\MarkDeng\lora-scripts-v1.7.3 找到gui.py 2 修改端口号 因为云端训练器也是占用28000和6006端口 那么本地改成27999和6007也是可以的 保存退出,运行启动…

阿里的库存秒杀是如何实现的?

一、阿里的库存秒杀的实现 阿里有很多业务,几十上百个业务线,各自都有一些需要做抢购、秒杀、热点扣将的场景。他们都用哪些方案呢? 我看了很多资料,也找了很多人做交流,最终得到的结论是啥都有,主要总结几个主流的&…

React系列 之 React进阶 含源码解读 (一)事件合成、state原理

资料来源:掘金课程 https://juejin.cn/book/6945998773818490884?enter_fromcourse_center&utm_sourcecourse_center 记录一些笔记 事件合成 React的事件其实是React重新实现的一套事件系统。目标是统一管理事件,提供一种跨浏览器一致性的事件处…

怎么拆解台式电脑风扇CPU风扇的拆卸步骤-怎么挑

今天我就跟大家分享一下如何选购电脑风扇的知识。 我也会解释一下机箱散热风扇一般用多少转。 如果它恰好解决了您现在面临的问题,请不要忘记关注本站并立即开始! 文章目录列表:大家一般机箱散热风扇都用多少转? 机箱散热风扇选择…

AbstractQueuedSynchronizer 独占式源码阅读

概述 ● 一个int成员变量 state 表示同步状态 ● 通过内置的FIFO队列来完成资源获取线程的排队工作 属性 AbstractQueuedSynchronizer属性 /*** 同步队列的头节点 */private transient volatile Node head;/*** 同步队列尾节点,enq 加入*/private transient …

专业矢量绘图设计软件:Sketch for mac 中文激活版

Sketch for Mac 是一款专业的矢量图形设计工具,主要用于 UI/UX 设计、网页设计、图标设计等领域。它的界面简洁、易用,功能强大,可以帮助设计师快速创建高质量的设计作品。 人性化界面 Sketch的界面非常简洁。最顶端的工具箱包含了最重要的操…

Oracle Data Guard部署

Oracle的主备DG搭建 1. 修改主机名,同步时间 主库IP:192.168.100.137 备库IP:192.168.100.138配置主机名(主库) Hostname zygjpdb vim /etc/hosts 192.168.100.137 zygjpdb 192.168.100.138 zygjsdbvim /etc/sysconfig/network HOSTNAMEzygjpdb ------…