python学习笔记-04

高级数据类型

一组按照顺序排列的值称为序列,python中存在三种内置的序列类型:字符串、列表和元组。序列可以支持索引和切片的操作,第一个索引值为0表示从左向右找,第一个索引值为负数表示从右找。

1.字符串操作

1.1 切片
切片是指选取字符串中的某些数据,语法:字符串[开始下标:结束下标:步长],切片截取的内容不包括结束下标对应的数据,步长是指隔几个下标获取一个字符,步长默认是1。

 test='hello world'
print('完整字符串%s'%test)
print('%s是第三个到第五个之间的数据'%test[2:5])  #包括下标为2的不包括下标为5的,步长默认为1
print('第三个开始到最后%s'%test[3:])
print('第一个开始到第三个%s'%test[:3])
print('倒叙输出%s'%test[::-1])  #负号表示方向,1是步长,从右向左输出

在这里插入图片描述

1.2 常用函数
在这里插入图片描述

test=' python '
print(type(test))    #打印test的类型
k=1
for i in test:print('第%d个字符是%s'%(k,i))k+=1pass
print('原本的值%s'%test)
print('首字母大写函数测试%s'%test.capitalize())
print('本身没变%s'%test)
print('stripe函数去除空格后%s这样的'%test.strip())
print('只删除左边的空格%s后'%test.lstrip())
print('只删除右边的空格%s后'%test.rstrip())
print('%s的内存地址%d'%(test,id(test)))
print('是否以p开头%s'%test.startswith('p')) #返回布尔值
print('是否以空格开头%s'%test.startswith(' '))
print('是否以p结尾%s'%test.endswith('p'))
print('是否以空格结尾%s'%test.endswith(' '))
print('大写转换%s'%test.upper())
test1='PYTHON'
print('小写转换%s'%test1.lower())
t=test   #字符串复制,把test的内存地址给了t
print('%s的内存地址是%d'%(t,id(t)))  #之所以叫复制不叫赋值是因为地址都是一样的
print(test.find('P'))  #find函数查找目标在序列中的位置,没有返回-1,有返回下标,如果查找到两个返回第一个
print(test.find('p'))
print(test.index('p'))   #index函数也是查找目标在字符串中的索引值,找到返回下标
print(test.index('P'))   #没找到会报错

在这里插入图片描述

在这里插入图片描述

2.列表操作

列表是一种有序的集合,可以增删改查其中的元素,数据项可以是任何类型的数据,支持索引和切片操作。

在这里插入图片描述

增加函数:append、extend、insert
修改:只要通过索引直接重新赋值就可以
删除函数:pop、remove、del
#定义一个空列表
li=[]
print(type(li))
#len函数可以获取列表中的数据个数或字符串的长度
li1=[1,2.4,"你好",True]
print(len(li1))   #返回列表li1的长度
str='snshj'
print(len(str))
print(li1)  #输出列表
print(li1[0])  #输出第一个元素
print(li1[1:3]) #输出第二个元素到第三个元素
print(li1[::-1]) #倒叙输出
print(li1*3)  #复制延长三次
#列表的增加
li1.append(['fff','ddd'])
li1.append(99)    #什么都能加,也可以加一个列表
print(li1)
li1.insert(1,'在索引值为1的地方插入数据')
#批量增加数据
rs=list(range(10))   #生成十个数并转为列表类型
li1.extend(rs)    #扩展、批量添加
print(li1)
#或者也可以直接扩展一个列表
li1.extend([1,12,34])
print(li1)    #可以从这里看到重复了也会加入进去
#修改
li1[0]='change'
print(li1)
#删除
del li1[0]   #删除列表中第一个元素
print(li1)
#批量删除
del li1[1:7:2] #按步长和范围批量删除
print(li1)
li1.remove(12)  #删除指定元素
print(li1)
li1.pop(2)  #删除指定下标的项
print(li1)
#查找
print(li1.index(1))  #返回元素1的下标,可以看出他返回的是第一个符合的位置
print(li1.index(1,5,19)) #表示返回从索引为5的数据开始查1这个元素,查到索引为19的元素,如果没找到就报错,找到就返回下标
#反转列表
li1.reverse()
print(li1)
print(li1.reverse())

在这里插入图片描述

len函数可以输出列表的数据项个数和求得字符串的长度

3.元组操作

元组是一种不可变的序列,创建后不能做任何修改,不能进行增删改,元组中的数据项用逗号分割,可以是任何数据类型,支持切片操作,和列表操作很像,都可以通过下标访问。但是元组中的元素不可以修改,而列表中的元素可以修改;元组使用小括号,列表使用中括号。当元组中只有一个元素时,要加逗号,不然会当作整型处理。
元组只能进行查询,但是可以对元组中的列表修改。

#元组的创建
tua=()   #创建一个空元组
print(type(tua))
print(id(tua))
tua=(1)
print(type(tua))   #如果只有一个数值不加逗号就会解释成int型
print(id(tua))    #重新赋值之后内存地址也变了
tua=(1,)
print(type(tua))   #加上逗号就好了
tua=('ji')
print(type(tua))   #只有一项解释成了字符型
tua=(1,2.3,'heihei',[1,2,'list'])  #创建一个正经元组
print(tua)
#元组的查询
for item in tua:print(item,end=" ")pass
print('用下标取%s'%tua[2])
print('用切片:')
print(tua[2:4])
print(tua[::-1])  #倒叙输出
print(tua)
print('下标-1的值也就是最后一个:',end=' ')
print(tua[-1])
print('下标-2的值是%s也就是倒数第二个'%tua[-2])
print('下标-3的值是%d也就是倒数第三个'%tua[-3])
print('下标-4的值是%d也就是倒数第四个'%tua[-4])
print(tua[-2:-1:])
#可以对元组中的列表进行修改
tua[3][0]=5678
print(tua)
tub=tuple(range(10))
print(tub)
#统计元组中到底有几个某元素
tub=(1,3,345,1,5,1)
print(tub.count(1))
print(tub.count(3))

在这里插入图片描述

4.字典操作

字典可以存储任意对象,是无序集合不是序列,以键值对的方式呈现,{‘key’,‘value’}。当在字典中查找元素时通过键查找。与列表一样,字典可以增删改查。
字典的键只能是不可变类型,比如数字、元组、字符串。

字典的键key不能重复,值value可以重复
如果存在重复的键,后者会覆盖前者

在这里插入图片描述

#创建一个空字典
dictA={}
print(type(dictA))
#增
dictA['name']='clis'   #name表示key,clis表示value
dictA['na']='clo'
print(dictA)
#改
dictA['name']='cli'
print(dictA)
print('dictA字典长度为%d'%len(dictA))
print('通过键查找键为name的值%s'%dictA['name'])
dictA.update({'name':'dsfd'})   #用update函数修改,也可以用于增加键值对
print(dictA)
dictA.update({'insert':'haha'})
print(dictA)
#遍历字典
print(dictA.keys())  #获取所有键
print(dictA.values())  #获取所有值
print(dictA.items())  #获取所有的数据项、键值对
for item in dictA.items():print(item)pass
for key,value in dictA.items():print('%s==%s'%(key,value))pass
#删除操作
del dictA['name']
print(dictA)
dictA.pop('insert')
print(dictA)
#声明一个有值的字典
dictB={'key2':'value1','key1':'value2'}
print(type(dictB))
print(dictB)
#对字典进行排序,按照ASCII码进行排序
print(sorted(dictB.items(),key=lambda d:d[0]))   #0指按照键排序
print(sorted(dictB.items(),key=lambda d:d[1]))   #1指按照值排序
#这里要注意,排序只能排相同类型的,如果是不同类型的,排不了,会报错

在这里插入图片描述

update函数,当更新的键值不存在时,就可以当做增加使用;存在时就更新。

5.共同的方法

在这里插入图片描述

#字符串
strA='diyige'
strB='dierge'
print(strA+strB)   #合并
print(strA*3)      #复制
print('yi' in strA)    #看对象是否存在,返回布尔类型的值
print('er' in strA)#列表
listA=list(range(10))
listB=list(range(11,20))
print(listA+listB)      #合并
print(listA*3)          #复制
print(12 in listA)      #看对象是否存在
print(2 in listA)#元组
tua=(1,3,45,5)
tub=('asd',234)
print(tua+tub)    #合并
print(tub*3)      #复制
print(3 in tub)   #看是否存在
print(3 in tua)  #字典
dictA={'name':'paul','age':18}
print('aa' in dictA)    #看某值是否为字典的键值
print('name' in dictA)
print('paul' in dictA)

在这里插入图片描述

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

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

相关文章

目标检测数据集 - 智能零售柜商品检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:智能零售柜商品检测数据集,真实智能零售柜监控场景采集高质量商品图片数据,数据集含常见智能零售柜商品图片,包括罐装饮料类、袋装零食类等等。数据标注标签包含 113 个商品类别;适用实际项目应用&#xff…

云数融合与大数据技术在日常生活中的创新应用探索

前言 移动云模型服务产品在中国移动旗下主要包括云计算、大数据、人工智能等服务,它依托广泛的算力资源(4N31X)、丰富的网络接入资源和高品质云专网,实现算网端资源一站式开通,构建企业级一体化解决方案。 文章目录 前言云计算的日常应用智…

Kafka自定义分区器编写教程

1.创建java类MyPartitioner并实现Partitioner接口 点击灯泡选择实现方法,导入需要实现的抽象方法 2.实现方法 3.自定义分区器的使用 在自定义生产者消息发送时,属性配置上加入自定义分区器 properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG,&q…

蓝桥杯物联网竞赛_STM32L071_20_用printf将数据显示在OLED上

需求: 第十五届国赛确实有点变态,显示部分大概有6个所以需要大量将sprintf与OLED_ShowString配合使用才能显示相应格式的数据,所以我在想能不能简化一下这一部分直接用写好的printf语句将数据显示到显示屏上呢? 代码&#xff1a…

李廉洋:6.4黄金原油今日行情价格涨跌趋势分析及最新操作建议多空布局;

黄金消息面分析:全球债券周二上涨,呼应美债隔夜的涨势。美联储或早降息的押注增强了主权债务的吸引力。澳大利亚和新西兰10年期债券收益率下跌至少8个基点,先前数据显示,美国5月份工厂活动萎缩的速度加快。日本10年期债券收益率下…

数字塔问题

#include<iostream> using namespace std; //从下向上得到最优值 void dtower(int a[][100],int s[][100],int n) {for(int in; i>1; i--){for(int j1; j<i; j){if(in)s[i][j]a[i][j];else{int ts[i1][j];if(t<s[i1][j1])ts[i1][j1];s[i][j]a[i][j]t;}}} } void…

工业楼控暖通组态恒温检测控制大屏前端UI案例

工业楼控暖通组态恒温检测控制大屏前端UI案例

gitea的git库备份与恢复

文章目录 gitea库的备份与恢复概述笔记实验环境更新git for windows更新 TortoiseGit备份已经存在的gitea的git库目录使用gitea本身来备份所有git库目录将gitea库恢复到新目录m1m2m3启动gitea - 此时已经恢复完成FETCH_HEAD 中有硬写位置再查一下app.ini, 是否改漏了。m1m2 总结…

【深度学习】Transformer梳理

零、前言 对于transformer&#xff0c;网上的教程使用记号、术语不一 。 最关键的一点&#xff0c;网上各种图的简化程度不一 &#xff08;画个图怎么能这么偷懒&#xff09; &#xff0c;所以我打算自己手画一次图。 看到的最和善&#xff08;但是不是那么靠谱&#xff0c;我…

友顺科技(UTC)分立器件与集成IC产品选型和应用

友顺科技股份有限公司成立于1990年&#xff0c;是全球领先的集成电路与功率半导体厂商 ,集团总部位于台北&#xff0c;生产基地位于福州、厦门。 友顺科技具有完整模拟组件产品线&#xff0c;其中类比IC涵盖各种稳压器、PWM控制IC, 放大器、比较器、逻辑IC、Voltage Translato…

香橙派OrangePi AIpro,助力国产AIoT迈向新的台阶!

前言&#xff1a;很高兴受邀CSDN与OrangePi官方组织的测评活动&#xff0c;本次测评是一块基于AI边缘计算的香橙派开发板OrangePi AIpro。这是 香橙派 联合 华为昇腾 合作精心打造的新一代边缘AI计算产品&#xff0c;于2023年12月初发布&#xff0c;提供 8/20TOPS澎湃算力[1]&a…

windows hash简介

一、hash简介 1、Windows系统使用两种方法对用户的密码进行哈希处理。它们分别是LAN Manager(LM)哈希和 NT LAN Manager(NTLM)哈希 2、所谓哈希(hash)&#xff0c;就是使用一种加密函数进行计算后的结果。这个加密函数对一个任意长度的 字符串数据进行一次数学加密函数运算…

mysql中InnoDB存储引擎的Buffer Pool

大家好。众所周知&#xff0c;对于使用InnoDB作为存储引擎的表来说&#xff0c;不管是用于存储用户数据的索引&#xff08;包括聚簇索引和二级索引&#xff09;&#xff0c;还是各种系统数据&#xff0c;都是存储在磁盘上的。在处理客户端的请求时&#xff0c;当需要访问某个页…

Wireshark Lua插件入门

摘要 开发中经常通过抓包分析协议&#xff0c;对于常见的协议如 DNS wireshark 支持自动解析&#xff0c;便于人类的理解&#xff0c;对于一些私有协议&#xff0c;wireshark 提供了插件的方式自定义解析逻辑。 1 动手 废话少说&#xff0c;直接上手。 第一步当然是装上wiresh…

守护景区安全:探讨景区视频监控方案的搭建及必要性

据新闻报道&#xff0c;5月25日&#xff0c;安徽黄山景区内发生雷击&#xff0c;闪电击中飞来石景点的护栏&#xff0c;多人被碎石砸中受伤。景区工作人员表示&#xff0c;飞来石附近本就属于雷区&#xff0c;当天曾发过两次雷电预警。 随着旅游业的繁荣发展&#xff0c;越来越…

内存管理【C++】

内存分布 C中的内存区域主要有以下5种 栈&#xff08;堆栈&#xff09;&#xff1a;存放非静态局部变量/函数参数/函数返回值等等&#xff0c;栈是向下增长的【地址越高越先被使用】。栈区内存的开辟和销毁由系统自动执行 堆&#xff1a;用于程序运行时动态内存分配&#xff…

Element ui 快速入门(基础知识点)

element ui官网 前言&#xff1a; 在当今时代&#xff0c;我们在编写计算机程序时&#xff0c;不仅仅是写几个增删改查的简单功能&#xff0c;为了满足广大用户对页面美观的需求&#xff0c;为了让程序员们写一些功能更简便&#xff0c;提高团队协作效率&#xff0c;所以eleme…

Audio PsyChat:web端语音心理咨询系统

这是一个在服务器本地运行的web语音心理咨询系统&#xff0c;咨询系统内核使用PsyChat&#xff0c;我们为其制作了Web前端&#xff0c;并拼接了ASR和TTS组件&#xff0c;使局域网内用户可以通过单纯的语音进行交互。其中ASR和TTS组件使用PaddleSpeech API。 使用 使用单卡3090…

C语言王国——字符函数和字符串函数(2)

目录 5 strtok函数 5.1 函数的表达式 5.2 函数模拟 6 strstr函数 6.1 函数表达式 7 strerror函数 7.1 函数表达式 7.2 例子 7.3 perror 8 strncpy、strncat、strncmp函数 四 结论 5 strtok函数 strtok函数我的理解是他是一个分割字符串的函数 5.1 函数的表达式 cha…

国联易安:网络反不正当竞争,要防患于未然

据市场监管总局官网消息&#xff0c;为预防和制止网络不正当竞争&#xff0c;维护公平竞争的市场秩序&#xff0c;鼓励创新&#xff0c;保护经营者和消费者的合法权益&#xff0c;促进数字经济规范健康持续发展&#xff0c;市场监管总局近日发布《网络反不正当竞争暂行规定》&a…