Python18 数据结构与数据类型转换

图片

1.python中的数据结构

在Python中,数据结构是用来存储、组织和管理数据的方式,以便有效地执行各种数据操作。Python提供了几种内置的数据结构,每种都有其特定的用途和操作方法。以下是Python中一些主要的数据结构:

1.列表(List):

    • 列表是一种有序的数据集合,可以动态地增加和减少元素。

    • 列表中的元素可以是不同类型的,可以包含重复值。

    • 列表支持索引和切片操作,可以通过索引访问或修改其中的元素。

2.元组(Tuple):

    • 元组与列表类似,但是一旦创建就不能被修改(不可变)。

    • 元组通常用于保护数据不被修改,以及当函数需要返回多个值时。

3.字典(Dictionary):

    • 字典是基于键值对的数据结构,可以快速检索存储的数据。

    • 每个键值对映射一个键到一个值。键必须是唯一的,而值则可以是任何数据类型。

    • 字典是无序的,但从Python 3.7开始,字典维护元素的插入顺序。

4.集合(Set):

    • 集合是一个无序的元素集,自动排除任何重复项。

    • 集合主要用于测试成员资格、去除重复项和执行数学上的集合操作(如交集、并集、差集等)。

5.栈(Stack):

    • 栈是一个后进先出(LIFO)的数据结构,只能在一端(通常是顶部)进行添加或移除元素。

    • Python中没有内置的栈数据结构,但可以使用列表来实现栈的功能。

6.队列(Queue):

    • 队列是一个先进先出(FIFO)的数据结构,元素从一端添加,从另一端移除。

    • Python的collections模块提供了deque,支持从两端快速添加和删除元素,适用于队列实现。

这些数据结构是编程中的基本工具,帮助开发者有效管理和处理数据。

2.列表List

查看特定元素的索引:

a=[1,2,3,3]
b=[4,5,6]# 查看元素的索引 2的索引为1
a.index(2)  # 1

合并两个列表:

# 合并两个列表
a.extend(b)
a  # [1, 2, 3, 3, 4, 5, 6]

删除列表特定元素:

# 删除列表元素
a.remove(3)
a  # [1, 2, 3, 4, 5, 6]

列表添加元素:

# 添加元素
a.append(1)
a  # [1, 2, 3, 4, 5, 6, 1]

翻转列表:

# 翻转列表
a.reverse()
a  # [1, 6, 5, 4, 3, 2, 1]

列表排序:

# 列表排序
a.sort()
a  # [1, 1, 2, 3, 4, 5, 6]

列表弹出元素:

# 弹出元素
a.pop(1)
a  # [1, 2, 3, 4, 5, 6]

计算元素个数:

# 计算列表中4的个数
a.count(4)  # 1

列表去重:

# 列表去重
a=[1, 4, 4, 5, 5, 5, 6, 6, 6]
a=list(set(a))
a  # [1, 4, 5, 6]

去重并保持index不变:

# 去重保持index不变
ids = [1,4,3,3,4,2,3,4,5,6,1]
news_ids = list(set(ids))
news_ids.sort(key=ids.index)
news_ids  # [1, 4, 3, 2, 5, 6]

对以元组为元素的列表进行条件排序:

# sorted函数
import operator
students=[('yan','A',15),('qiang','B',17),('li','O',20)]
# 按照年龄进行逆排序(从大向小)
sorted(students,key=operator.itemgetter(2),reverse=True)
# [('li', 'O', 20), ('qiang', 'B', 17), ('yan', 'A', 15)]

列表转换成元组:

# 将列表转换成元组
a = [1, 4, 5, 6]
tuple(a)  # (1, 4, 5, 6)

列表切片操作:

li=[1,2,3,4,5,6,7]
li[1:]  # [2, 3, 4, 5, 6, 7]
li[::-1]  # [7, 6, 5, 4, 3, 2, 1]
# 步长为2
li[::2]  # [1, 3, 5, 7]

3.字符串String

a="helloworld"
max(a)  # 'w'
min(a)  # 'd'
len(a)  # 10
# 获取指定元素的index
a.index('h')  # 0
bool('o' in a)  # True
a+a  # 'helloworldhelloworld'
a*3  # 'helloworldhelloworldhelloworld'
a[5]  # a[5]
a[1:4]  # 'ell'
a[-1]  # 'd'

4.字符串、元组、列表和字典转换

字典转其他数据类型:

dict={'name':'quincy','age':7,'class':'First'}
#字典转换成字符串
print(str(dict),type(str(dict)))
# {'name': 'Cheney', 'age': 30, 'class': 'First'} <class 'str'>
# 字典转成元组
print(tuple(dict))
# ('name', 'age', 'class')
# 字典的值转换成元组
print(tuple(dict.values()))
# ('Cheney', 30, 'First')
#字典索引转换成列表
print(list(dict))
# ['name', 'age', 'class']
#字典的值转换成列表
print(list(dict.values()))
# ['Cheney', 30, 'First']

元组转其他数据类型:

tup=(1,2,3,4,5)
# 元组转换成字符串
print(str(tup),type(str(tup)))
tup_str=str(tup)  # (1, 2, 3, 4, 5) <class 'str'>
# for ele in tup_str:
#     print(ele)
# 元组转换成列表
print(list(tup))  # [1, 2, 3, 4, 5]

元组不可以转化成字典。

列表转其他数据类型:

nums=[1,2,3,4,5,6,7]
# 将列表转换成字符串
print(str(nums), type(str(nums)))  # [1, 2, 3, 4, 5, 6, 7] <class 'str'>
# 将列表转换成元组
print(tuple(nums))  # (1, 2, 3, 4, 5, 6, 7)

列表不可以转换成字典。

字符串转其他数据类型:

# 字符串转化为元组
print(tuple(eval("(1,2,4)")))  # (1, 2, 4)
# 将字符串转化为列表
print(list(eval("[1,2,4]")))  # [1, 2, 4]
# 将字符串转为字典
# eval 将字符串str当成有效的表达式来求值并返回计算结果。
print(eval("{'name':'cheney','age':23}"))
print(type(eval("{'name':'Cheney','age':23}")))# {'name': 'cheney', 'age': 23}
<class 'dict'>

以上内容总结自网络,如有帮助欢迎转发,我们下次再见!

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

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

相关文章

Mac数据如何恢复?3 款最佳 Mac 恢复软件

如果您认为 Mac 上已删除的文件永远丢失了&#xff0c;那您就大错特错了&#xff01;实际上&#xff0c;即使您清空了 Mac 上的垃圾箱&#xff0c;也有许多解决方案可以帮助您恢复已删除的文件。最好的解决方案之一是 Mac 恢复删除软件。最好的Mac 恢复删除应用程序可以轻松准确…

【STM32c8t6】AHT20温湿度采集

【STM32c8t6】AHT20温湿度采集 一、探究目的二、探究原理2.1 I2C2.1. 硬件I2C2.1. 软件I2C 2.2 AHT20数据手册 三、实验过程3.1 CubeMX配置3.2 实物接线图3.3 完整代码3.4 效果展示 四、探究总结 一、探究目的 学习I2C总线通信协议&#xff0c;使用STM32F103完成基于I2C协议的A…

国产AI算力训练大模型技术实践

ChatGPT引领AI大模型热潮&#xff0c;国内外模型如雨后春笋&#xff0c;掀起新一轮科技浪潮。然而&#xff0c;国内大模型研发推广亦面临不小挑战。面对机遇与挑战&#xff0c;我们需保持清醒&#xff0c;持续推进技术创新与应用落地。 为应对挑战&#xff0c;我们需从战略高度…

android关于源码编译简单的apk处理

文章目录 简述文件的添加 简述 创建AOSP源码可编译一个简单apk的过程&#xff0c;代码子目录结构图如下所示 文件的添加 1.com.custom.test目录下创建TestActivity.java文件 用于简单的界面显示类 package com.custom.test;import android.app.Activity; import android.o…

Leetcode 2713. 矩阵中严格递增的单元格数(DFS DP)

Leetcode 2713. 矩阵中严格递增的单元格数 DFS 容易想到&#xff0c;枚举每个点作为起点&#xff0c;向同行同列的可跳跃点dfs&#xff0c;维护全局变量记录可达的最远距离 超时&#xff0c;通过样例193 / 566 class Solution {int res 0;public void dfs(int[][] mat, in…

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!

众所周知&#xff0c;实时目标检测( Real-Time Object Detection )一直由 YOLO 系列模型主导。 飞桨在去年 3 月份推出了高精度通用目标检测模型 PP-YOLOE &#xff0c;同年在 PP-YOLOE 的基础上提出了 PP-YOLOE 。后者在训练收敛速度、下游任务泛化能力以及高性能部署能力方面…

IDEA各种实体类运行爆红,不运行就没事

1.问题描述 如图所示&#xff0c;后端项目的import的各种entity爆红&#xff0c;点击也有导入包的提示&#xff0c;且这种报红几乎遍布了整个工程项目 2.我的解决方案 清空缓存&#xff0c;然后把target文件删掉&#xff0c;重新跑 3.小结 idea项目有时候就是一个核弹&…

Go 三色标记法:一种高效的垃圾回收策略

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Linux_软硬链接

目录 1、软链接 2、软链接的使用方式 3、软链接的删除 4、硬链接 5、硬链接的使用方式 6、软硬链接的使用场景 7、软硬链接的区别 结语 前言&#xff1a; 在Linux操作系统中&#xff0c;有软链接和硬链接&#xff0c;他们是一种特殊的文件引用&#xff0c;主要用于与…

Phi-3 模型手机部署教程(微软发布的可与GPT-3.5媲美的小模型)

前面几篇博文&#xff0c;老牛同学和大家一起在个人电脑部署了Qwen2、GLM4、Llama3、ChatTTS和Stable Diffusion等 LLM 大模型&#xff0c;也通过 API 和 WebUI 的方式完成了体验。 但是这些大模型因为部署在个人电脑本地&#xff0c;不能够随时携带。如果能在手机上部署大模型…

众爱宠物开源项目介绍

众爱宠物管理系统是一个集会员管理、宠物管理、商品管理、库存管理、数据管理、收银管理、多门店管理等功能于一体的综合管理系统&#xff0c;具有操作方便、简单、安全等优点。 开源项目地址

LabVIEW 控制 Tucsen 相机

LabVIEW 控制 Tucsen 相机 ucsen 是一家知名的显微镜相机制造商&#xff0c;其相机产品广泛应用于科研、工业和医疗等领域。本文将介绍如何使用 LabVIEW 软件来控制 Tucsen 相机&#xff0c;涵盖相机的基本情况、硬件和软件要求、具体的控制步骤和编程示例。通过使用 LabVIEW&…

环信beta版鸿蒙IM SDK发布!深度适配HarmonyOS NEXT系统

环信beta版鸿蒙IM SDK已正式发布&#xff01;欢迎有需求开发者体验集成&#xff01; 版本亮点 提供原生鸿蒙 SDK&#xff0c;支持原生 ArkTS 语言&#xff0c;全面拥抱鸿蒙生态提供鸿蒙系统上单聊、群聊、会话等能力和服务覆盖消息管理、用户属性、群租管理、离线推送.多设备…

2-14 基于matlab的GA优化算法优化车间调度问题

基于matlab的GA优化算法优化车间调度问题。n个工作在m个台机器上加工。已知每个工作中工序加工顺序、各工序的加工时间以及每个工件所包含的工序&#xff0c;在满足约束条件的前提下&#xff0c;目的是确定机器上各工件顺序&#xff0c;以保证某项性能指标最优。程序功能说明&a…

SFF1006A-ASEMI无人机专用SFF1006A

编辑&#xff1a;ll SFF1006A-ASEMI无人机专用SFF1006A 型号&#xff1a;SFF1006A 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;10A 最大循环峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;600V 最大…

力扣SQL50 超过5名学生的课

Problem: 596. 超过5名学生的课 Code select class from courses group by class having count(distinct student) > 5;

哔哩哔哩视频URL解析原理

哔哩哔哩视频URL解析原理 视频网址解析视频的原理通常涉及以下几个步骤&#xff1a; 1、获取视频页面源代码&#xff1a;通过HTTP请求获取视频所在网页的HTML源代码。这一步通常需要处理反爬虫机制&#xff0c;如验证码或用户登录。 2、解析页面源代码&#xff1a;分析HTML源代…

Java项目:基于SSM框架实现的精品酒销售管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的精品酒销售管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

DS:二叉树的链式存储及遍历

​ 欢迎来到Harper.Lee的学习世界&#xff01; 博主主页传送门&#xff1a;Harper.Lee的博客主页 想要一起进步的uu可以来后台找我哦&#xff01; ​ 一、引入 1.1 二叉树的存储方式 在之前接触到的满二叉树和完全二叉树使用的是数组的存储方式&#xff08;DS&#xff1a;树与…

四川汇聚荣科技有限公司怎么样?

在探讨一家科技公司的综合实力时&#xff0c;我们往往从多个维度进行考量&#xff0c;包括但不限于公司的发展历程、产品与服务的质量、市场表现、技术创新能力以及企业文化。四川汇聚荣科技有限公司作为一家位于中国西部的科技企业&#xff0c;其表现和影响力自然也受到业界和…