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.mzph.cn/diannao/32989.shtml

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

相关文章

攻防世界-2-1

下载附件&#xff0c;发现是一张损坏的png文件&#xff0c;扔winhex里面修改文件头 修改之后发现还是打不开&#xff0c;提示CRC错误&#xff0c;脚本跑一下 循环冗余校验CRC&#xff08;Cyclic Redundancy Check&#xff09;是数据通信领域常用的一种数据传输检错技术。通过在…

记录Nuxt3部署线上pm2启动项目修改端口

看官方文档&#xff1a; TNND&#xff0c;修改这个端口号顶个P用&#xff0c;毛用也没有 实际上应该是这样&#xff1a; 好了&#xff0c;误人子弟&#xff5e;

太速科技-基于AD916X的直流至 12 GHz 矢量信号发生器 FMC子卡

基于AD916X的直流至 12 GHz 矢量信号发生器 FMC子卡 一、DAC 性能指标&#xff1a; ● DAC 型号&#xff1a;AD9163。 ● 分辨率&#xff1a;16bits。 ● DAC 更新速率&#xff1a;12GSPS。 ● 6GSPS 直接 RF 频率合成。 ● 直流至 3GHz&#xff08;不归零 NRZ 模式&…

粉笔1000题——判断推理

目录 一、图形推理1. 位置规律平移旋转、翻转 二、定义判断三、类比推理四、逻辑判断 一、图形推理 1. 位置规律 平移 旋转、翻转 二、定义判断 三、类比推理 四、逻辑判断

Python+Pytest+Yaml+Request+Allure框架源代码之(一)common公共方法封装

common模块&#xff1a; get_path.py&#xff1a;获取路径方法 # -*- coding: UTF-8 -*- import os# 项目根目录 BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# 配置文件目录 CONFIG_DIR os.path.join(BASE_DIR,config)# 测试用例文件目录 TESTCA…

[SAP ABAP] 删除内表数据

1.利用索引删除数据 语法格式 DELETE <itab> INDEX <idx>. <itab>&#xff1a;代表内表 <idx>&#xff1a;代表索引值 删除内表<itab>中的第<idx>条记录 示例1 lt_student内表中存在3条数据记录 我们使用如下指令删除内表中的第一条数…

Linux 7种 进程间通信方式

传统进程间通信 通过文件实现进程间通信 必须人为保证先后顺序 A--->硬盘---> B&#xff08;B不知道A什么时候把内容传到硬盘中&#xff09; 1.无名管道 2.有名管道 3.信号 IPC进程间通信 4.消息队列 5.共享内存 6.信号灯集 7.socket通信 一、无名管道&a…

mysql中in参数过多该如何优化

优化方式概述 未优化前 SELECT * FROM rb_product rb where sku in(1022044,1009786)方案2示例 public static void main(String[] args) {//往list里面设置3000个值List<String> list new ArrayList<>();for (int i 0; i < 3000; i) {list.add(""…

我在高职教STM32——LCD液晶显示(3)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

一键智能整理TXT文档,高效删除连续行,轻松提升工作效率与数据管理效能

信息爆炸的时代&#xff0c;TXT文档作为我们日常工作中不可或缺的一部分&#xff0c;承载着大量的数据和信息。然而&#xff0c;随着文档内容的不断增加&#xff0c;连续重复的行数也逐渐增多&#xff0c;这不仅影响了文档的整洁度&#xff0c;还大大降低了我们处理数据的效率。…

Monica

在 《long long ago》中&#xff0c;我论述了on是一个刚出生的孩子的脐带连接在其肚子g上的形象&#xff0c;脐带就是long的字母l和字母n&#xff0c;l表脐带很长&#xff0c;n表脐带曲转冗余和连接之性&#xff0c;on表一&#xff0c;是孩子刚诞生的意思&#xff0c;o是身体&a…

24年下半年各省自考报名时间汇总

24年下半年各省自考报名时间汇总

2024年【N1叉车司机】考试及N1叉车司机考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N1叉车司机考试是安全生产模拟考试一点通总题库中生成的一套N1叉车司机考试题库&#xff0c;安全生产模拟考试一点通上N1叉车司机作业手机同步练习。2024年【N1叉车司机】考试及N1叉车司机考试题库 1、【多选题】《中…

独角兽品牌獭崎酱酒:高性价比的酱香之选

在酱香型白酒领域中&#xff0c;獭崎酱酒以其独特的品牌定位和高性价比迅速崛起&#xff0c;成为市场上备受关注的独角兽品牌。作为贵州茅台镇的一款新秀酱香酒&#xff0c;獭崎酱酒不仅传承了百年酿造工艺&#xff0c;还以创新的商业模式和亲民的价格赢得了广大消费者的青睐。…

BLDC无感控制策略

本文根据 BLDC 的电路模型推导了一个简 化磁链方程来估计转子位置,转速适用范围较 广;重点分析了反电动势和换相电流对转矩脉动 的影响;设计了一种BLDC的无速度传感器高速 驱动控制方案。通过试验验证了新型控制策略 的性能。 1 低速时的转子位置检测 图1 为高速无刷直流电…

数学建模基础:线性模型

目录 前言 一、线性方程组 二、线性规划 三、线性回归 四、线性模型的应用 五、实例示范&#xff1a;医疗成本预测 步骤 1&#xff1a;导入数据 步骤 2&#xff1a;数据预处理 步骤 3&#xff1a;建立多元线性回归模型 步骤 4&#xff1a;模型验证 步骤 5&#xff1…

重生奇迹MU 浅析智力妹妹的现状与天赋

早期的重生奇迹MU游戏中&#xff0c;智力系女性角色通常被简称为“奶娘”&#xff0c;因为她们天生就是辅助定位&#xff0c;能够为队友提供很多帮助。那个时代的游戏非常艰难&#xff0c;升级困难&#xff0c;装备和宝石很难获得&#xff0c;使用药品的消耗也非常大。因此&…

Python中的性能分析和优化

在前几篇文章中&#xff0c;我们探讨了Python中的异步编程和并发编程&#xff0c;以及如何结合使用这些技术来提升程序性能。今天&#xff0c;我们将深入探讨如何分析以及优化Python代码的性能&#xff0c;确保应用程序的高效运行&#xff01; 性能分析的基本工具和方法 在进…

screenshot-to-code之安装、测试

准备 GPT收费账号 screenshot-to-code Supported AI models: GPT-4O - Best model!GPT-4 Turbo (Apr 2024)GPT-4 Vision (Nov 2023)Claude 3 SonnetDALL-E 3 for image generation git或者手动 下载源代码 https://github.com/abi/screenshot-to-code pip install poetry (…

FFmpeg源码:ff_ctz / ff_ctz_c函数分析

一、ff_ctz函数的作用 ff_ctz定义在FFmpeg源码目录的libavutil/intmath.h 下&#xff1a; #ifndef ff_ctz #define ff_ctz ff_ctz_c /*** Trailing zero bit count.** param v input value. If v is 0, the result is undefined.* return the number of trailing 0-bits*/…