python 中的数据结构

python 中的数据结构

在这里插入图片描述

1.1 序列

序列时有索引的数组

举例实现:

a=["北京","上海","广州","深圳","重庆","成都"]
print(a[2])
print(a[-1] + " " + a[-2])
print(a[1:3])
# 运行结果
"""
广州
成都 重庆
['上海', '广州']
"""

在序列中可以实现切片功能,切片功能非常重要,后续再Pandas的应用中会重点学习。

b=["北京","上海","广州","深圳","重庆","成都","兰州","乌鲁木齐"]
print(b[0:5:2])
"""
['北京', '广州', '重庆']
"""

上面代码中,0和5分别是序列的启示和终止位置,2时步长,因此出现这种运行结果。

序列也可以相加

image-20240428162313978

序列的 in 应用,用于判断字符串中是否存在序列之中

image-20240428162513646

注:sorted()用于对序列进行排序,list()用于将序列转化为列表,len,min,max,等则分别用于计算序列的长度、最小值、最大值……

1.2 列表

  1. 列表创建

    三种创建的方式,一是手工创建,二是创建空列表之后再添加表元素,三是直接创建一个数据列表。

    a=["北京","上海","广州","深圳","重庆","成都"]
    b=[]
    c=list(range(0,20,2))
    print(a)
    print(b)
    print(c)
    

    image-20240428162913155

  2. 列表元素操作

    列表建立之后,主要就是对列表进行增删改,

    #用append方式添加列表元素
    for i in range(1,10):b.append(i)
    print("原来的",b)
    b.insert(2,2.3)
    print("insert方法之后的:",b)
    c=[100,200,300]
    print("extend之后的:")
    b.extend(c)
    print(b)
    b[0]=10000
    print("修改过的:",b)
    del b[-1]
    print("删除过的:")
    b.remove(2.3)
    print(b)
    

    image-20240428163059538

    第一个循环以append方式汪列表b中添加数据,再用insert方式往列表中插入数据,insert方式准确的确定插入位置,extend 方法可以实现两个列表的合并,但是只能简单的合并再一块,对重复的数据不会进行处理。

    a=[1,2,3]
    b=[1,2,4]
    a.extend(b)
    print('看有重复数据的列表的extend结果:',a)
    

    image-20240428163431068

列表元素的命令

  • 删除命令:del(根据列表的索引删除),remove(根据列表的值删除)
  • 统计方法:count,index,sum……
  1. 列表循环语句

    一是 for 循环,二是 enumerate 函数

    print('for循环的输出:')
    for item in a:print(item)
    print('for+enumerate循环的输出:')
    for index,item in enumerate(a):print(index+1,item)

    image-20240428163811284

1.3 元组

元组内容不可改变,并且可以将不同类型的数据放入元组中

元组与列表的操作很类是,唯一区别在于元组再代码中是用圆括号括起来的

a=("北京","上海","广州","深圳","重庆","成都")
b=()
c=tuple(range(0,20,2))
print(a)
print(b)
print(c)
a=("哈哈","嘿嘿","呵呵")
print(a)

1.4 字典

  1. 字典的典型作用

    • 一、去重统计
    • 二、提高检索效率
  2. 创建字典

    三种方式创建。

    • 手工直接创建
    • 通过单列表的方法创建
    • 通过两个列表的方式创建
    # 手工创建
    d={'name':'王猪猪','name1':'李大壮'}
    if 'name2' in d:print(d['name'])
    else:print(d['name1'])
    # 单列表创建,fromkeys语句
    a=["北京","上海","广州"]
    d1=dict.fromkeys(a)
    print(d1)
    
    # zip语句痛过两个列表创建
    a2=["哈哈","呵呵","嘿嘿"]
    a3=[1,2,3]
    d2=dict(zip(a2,a3))
    print(d2)
    
  3. 字典内容的引用

    两种方式引用

    • 直接引用
    • get方法
    #直接引用方式和get引用方式
    for i in range(len(a2)):print(a2[i]+"  "+str(d2[a2[i]]))print(a2[i] + "  " + str(d2.get(a2[i])))
    
  4. 字典的增删改查

    d2["嘟嘟"]=4
    print(d2)
    d2["哈哈"]=10000
    print(d2)
    del d2["哈哈"]
    print(d2)
    print(d2.keys())
    print(d2.items())
    for x in d2.keys():print(x)
    for y in d2.items():print(y)
    
  5. 字典在多分支判断中的应用

    from distutils import log
    def stateA():print('stateA called')
    def stateB():print('stateB called')
    def stateC():print('stateC called')
    def stateDefault():print('stateDefault called')
    cases = {'a':stateA, 'b':stateB, 'c':stateC}#定义一个字典
    def switch(case):if case in cases:cases[case]()else:stateDefault()def test():switch('b')switch('c')switch('a')switch('x')
    test()

    先定义四个函数,随后定义一个字典 cases,在随后定义switch 的过程中,可以利用字典的 in 语句获取相应的数据。

1.5 集合

集合是一组元素的组合,其嘴重要的特征是保存不重复元素

  1. 两种创建方式
  • 直接创建
  • 用 set() 函数创建
set1={"北京","上海","广州","深圳"}
set2={"北京","重庆","成都","西安"}
a=["北京","三亚","海口","南宁"]
set3=set(a)
print(set1)
print(set2)
print(set3)
  1. 增删改功能

    • 添加:add
    • 定点删除:remove
    • 弹出方式:pop
    set1.add("乌鲁木齐")
    print(set1)
    set1.remove("乌鲁木齐")
    print(set1)
    print("现在开始进pop了:")
    print(len(set1))
    for i in range(1,len(set1)+1):set1.pop()print(set1)
    
  2. 集合运算

    交集&,并集|,差集-

    set1={"北京","上海","广州","深圳"}
    set2={"北京","重庆","成都","西安"}
    print(set1 & set2)
    print(set1 | set2)
    print(set1-set2)
    
  3. 集合综合案例

    import openpyxl
    from  openpyxl.reader.excel  import  load_workbook
    import sys
    import os
    wk=load_workbook(filename="基金数据.xlsx")
    sht1=wk["基金1"]
    sht2=wk["基金2"]
    a=set()
    b=set()
    for i in range(1,sht1.max_row+1):a.add(sht1.cell(i,1).value)
    for i in range(1,sht2.max_row+1):b.add(sht2.cell(i,1).value)
    print(a-b)
    print(b-a)
    

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

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

相关文章

C++使用单链表实现一元多项式的加,乘操作

相邀再次喝酒 待 葡萄成熟透 但是命运入面 每个邂逅 一起走到了 某个路口 是敌与是友 各自也没有自由 位置变了 各有队友 首先,按照惯例,十分欢迎大家边听歌边观看本博客!! 最佳损友 - 陈奕迅 - 单曲 - 网易云音乐 (163.com) 一…

最新优质电商API接口,附带教程【多语言环境高并发】

给大家更新一波24年一月份的新接口吧。 01 接口信息 线路推荐: 多仓: 1.春盈: https://wds.ecsxs.com/230989.json 2.无意: http://www.wya6.cn/tv/yc.json 3.主流电商平台API数据采集 单仓: 1.饭太硬: http:/…

探无止境,云游未来 | “游戏出海云”发布

4月28日下午,2024中国移动算力网络大会之“游戏出海”分论坛在江苏省苏州金鸡湖国际会议中心圆满落幕。 此次论坛由中国移动海南公司主办,中国移动通信集团政企事业部、中国移动云能力中心、中国移动国际公司共同协办。海南省工业与信息化厅副厅长黄业晶…

爬虫学习(1)简易网页采集器

如何使用: (reques ts模块的编码流程) 指定url 发起请求 获取响应数据 持久化存储 import requests#UA:User-Agent (请求载体的身份标识) #UA伪装:门户网站的服务器会检查对应请求的载体身份标识 if __name__ "__main__":urlhttps://www.baidu.com/s#处理…

ESP8266做主机 手机网络助手为从机

ATCIFSR查看地址,一般ESP8266 为192.168.4.1 在手机上下载网络调试助手,打开TCP客户端 创建后192.168.4.1 端口8089然后连接ESP8266热点。 ESP向手机发数据前先发送要发几个数据ATCIPSEND0,8表示发8个,然后再发8个数 上面创建好热点后&…

(Arxiv,2024)Mind the Modality Gap:通过跨模态对齐建立遥感视觉语言模型

文章目录 相关资料摘要引言相关工作对比语言图像预训练遥感域专用 CLIP 模型遥感中的多模态 CLIP 启发模型 方法模型算法输入阶段:输出阶段:步骤说明: 第一阶段:通过权重插值修补CLIP将遥感图像模态与自然图像和文本对齐 实验 相关…

基于PSO优化的PV光伏发电系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于PSO优化的PV光伏发电系统simulink建模与仿真。其中PSO采用matlab编程实现,通过simulink的函数嵌入模块,将matlab调用进simulink中。 2.系统仿真结…

java-Spring-Lombok-讲解-(一文一言)创伤是成熟的途径

高手都在孤独前进-致敬我们不悔的青春 我打算每篇文章下找一下文言警句-说不那天会用上😁😁😁😁 每篇一言 创伤是成熟的途径 希望经历过创伤的人,能更好享受当下, 爱自己胜过爱别人呀 目录 🎻Lombok简介 &#…

embedding介绍和常用三家模型对比

Embedding(嵌入)是一种在计算机科学中常用的技术,尤其是在自然语言处理(NLP)领域。在NLP中,embedding通常指的是将文本中的单词、短语或句子转换为固定维度的向量(vector)。这些向量代表了文本中的语义和上下文信息。 1.embedding 介绍 1.1 为什么需要Embedding? 在…

sqlalchemy 分表实现方案

1.需求及场景概述 现有系统中因历史数据量过大,产生了将历史数据进行按月存储的要求,系统和数据库交互使用的是sqlalchemy,假设系统的原来的历史记录表(record)如下: 为了将历史数据按月分表存储&#xff0…

Study--Oracle-01-单实例部署Oracle11G-R2

Oracle版本发布介绍 Oracle 19c和12c和11g功能区别_数据库_oracle_支持 一、CentOS 7 环境准备 1、软件准备 操作系统:CentOS 7 数据库版本: Oracle11g R2 2、操作系统环境配置 关闭selinux ,编辑 /etc/selinux/config文件,设置SELINU…

宝兰德通过广东教育行业信创适配认证,拓展教育信创生态圈

近日,由宝兰德自主研发的多款中间件产品通过广东省教育行业信创适配中心的适配测试。测试表明,宝兰德四款中间件产品(分布式缓存软件V3.0、应用服务器软件V9.5、消息中间件软件 V2.1、Web服务器软件V3.1) 与当前主流国产操作系统统…

springAI框架学习总结

springAI 1.springAI基本介绍 springAI是一个AI工程应用框架,其目标是将 Spring 生态系统设计原则(例如可移植性和模块化设计)应用于 AI 领域,并推广使用 POJO 作为 AI 领域应用程序的构建块。 2.特性 灵活的AIP支持chat,text…

Eayswoole 报错 crontab info is abnormal

在执行一个指定的定时任务时 如 php easyswoole crontab show 报错 crontab info is abnormal 如下图所示: 查询了半天 修改了如下配置: 旧的 // 创建定时任务实例 $crontab new \EasySwoole\Crontab\Crontab($crontabConfig); 修改后&#…

C++初阶学习第五弹——类与对象(下)——类与对象的收官战

类与对象(上):C初阶学习第三弹——类与对象(上)——初始类与对象-CSDN博客 类与对象(中):C初阶学习第四弹——类与对象(中)——刨析类与对象的核心点-CSDN博…

安泰ATA-L系列水声功率放大器驱动水声换能器可以进行哪些实验

水声功率放大器驱动水声换能器是进行水声实验中的关键设备之一,其应用范围广泛,可以进行多种实验和研究。以下是水声功率放大器驱动水声换能器可以进行的一些实验: 声纳性能测试:使用水声功率放大器驱动水声换能器可以进行声纳系统…

《Video Mamba Suite》论文笔记(1)Mamba在时序建模中的作用

原文链接 https://arxiv.org/abs/2403.09626https://arxiv.org/abs/2403.09626 原文代码 https://github.com/OpenGVLab/video-mamba-suitehttps://github.com/OpenGVLab/video-mamba-suite 原文笔记 What 《Video Mamba Suite: State Space Model as a Versatile Altern…

Windows 系统使用Jenkins 实现CI一键打包部署操作

一 下载安装jenkins jenkins 中文官网链接: 下载地址 点击下载,完成后是一个.msi后缀的安装文件,双击安装 安装和普通软件一样,一路next,安装路径自己设置一下,默认是C盘,我C盘不够用了,设置…

如何delphi7中添加自定义的控件或组件

1.问题 为了编写方便,会自己生成一些自定义的控件。 XXX.PAS:源码文件,后续可以再调整 XXX.DCU:编译后的文件 2.解决办法 1.自定义控件的文件如下 2.将这些文件保留在程式代码中,万一丢失会导致程式开启后报是否忽略 3.选择菜单栏中的com…

我独自升级崛起游戏账号登录注册教程 (5.8最新版)

新韩漫公司所发布的这项动作游戏已向玩家们敞开大门,为大家带来了前所未有的游戏体验和乐趣。这个游戏内包含了大量令人着迷的故事、令人印象深刻的战斗场景以及丰富多样的娱乐元素。在这其中最为引人注目的一点就是游戏内容中融入了“虚拟角色”的元素,…