Python(二)str、list、tuple、dict、set

string

name = 'abcdef'

print(name[0])                                               #a
# 切片:取部分数据
print(name[0:3]) # 取 下标为0,1,2的字符                       abc
print(name[2:]) # 取 下标为2开始到最后的字符                  cdef
print(name[1:-1]) # 取 下标为1开始 到 最后第2个  之间的字符   bcde

查找:

  • find(): 字符串序列.find(子串, 开始位置下标, 结束位置下标),有则返回索引,没有则返回-1
  • index():检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
sentence = "I am quite pleased to hear that you are learning python to write program"
print(sentence.find('to'))  # 19
print(sentence.find('to', 30, 60))  # 56  从某个区域内查找
print(sentence.find('tos'))  # -1

print(sentence.index('to'))  # 19
print(sentence.index('to', 30, 60))  # 56
print(sentence.index('tos'))  # 报错

修改:

  • replace(): 字符串序列.replace(旧子串, 新子串, 替换次数),如果省略或设为-1,则替换所有匹配的子串。
  • split(): 字符串序列.split(分割字符, num)
sentence = "I am quite pleased to hear that you are learning python  to write program"

# 结果:I am quite pleased go hear that you are learning python  go write program
print(sentence.replace('to', 'go'))
# 结果:I am quite pleased go hear that you are learning python  go write program
print(sentence.replace('to', 'go', 10))
# 结果:I am quite pleased to hear that you are learning python  to write program
print(sentence)


# 结果:['I am quite pleased ', ' hear that you are learning python  ', ' write program']
print(sentence.split('to'))
# 结果:['I am quite pleased ', ' hear that you are learning python  to write program']
print(sentence.split('to', 1))
# 结果:['I', 'am', 'quite', 'pleased', 'to', 'hear', 'that', 'you', 'are', 'learning', 'python', '', 'to', 'write', 'program']
print(sentence.split(' '))
# 结果:['I', 'am', 'quite pleased to hear that you are learning python  to write program']
print(sentence.split(' ', 2))

其他API:

  • capitalize:第一个字符大写
  • title:每个单词首字母大写
  • startswith:检查是否以传入的字符串开头
  • endswith:检查是否以传入的字符串开头结尾
  • lower:所有大写转为小写
  • upper:所有小写转为大写
  • strip:删除两端空格(lstrip、rstrip)
  • isspace:判断只包含空格
  • isalnum:判断只包含字母或数字
  • isdigit:判断只包含数字
  • isalpha:判断只包含字母

list

  • 有序的集合
  • 可重复
  • 可变
  • 可以存储任何类型的数据
  • 列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员。
# 定义list
fruitList = ['orange','apple','banana','grape']
# 获取个数
len(fruitList)
# 查找指定元素是否存在
'orange' in fruitList
# 查找索引
fruitList.index('apple')
# 查找个数
fruitList.count('apple')
# 访问
fruitList[0]
# 当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(fruitList ) - 1
# 访问最后一个还可以使用-1
fruitList[-1]
fruitList[-2]
# 末尾添加 无返回值
fruitList.append('Adam')
# 指定位置添加 无返回值
fruitList.insert(1, 'Jack')
输出:['orange', 'Jack', 'apple', 'banana', 'grape']
# 删除末尾元素,返回值为被删除的元素
fruitList.pop()
# 删除指定位置元素,返回值为被删除的元素
fruitList.pop(1)
# 替换某个元素 直接给索引赋值
fruitList[1] = 'Sarah'
# 删除索引
del movie_name[2]
# 删除元素
fruitList.remove('Jack')

tuple

  • 有序列表
  • 不可变
  • 可重复
  • 可以是不同的数据类型
  • 只有1个元素的tuple定义时必须加一个逗号,来消除歧义
  • 获取数据和list相同,没有删除和添加方法
  • 定义一个空的tuple,可以写成()
fruitList = ('orange','apple','banana','grape','grape')

可变:
在这里插入图片描述

字典

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据’名字’(就是冒号:前面的那个值,例如上面代码中的’name’、‘id’、‘sex’)
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}

print(info['name'])
print(info['address'])
# 访问不存在的键会报错

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

>>> age = info.get('age')
>>> age #'age'键不存在,所以age为None
>>> type(age)
<type 'NoneType'>
>>> age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18
>>> age
18
  • 查看
    使用get获取元素,获取不存在的不会报异常
 info = {'name':'吴彦祖','age':18}
 print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常
  • 修改
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
new_id = input('请输入新的id')
info['id'] = int(new_id)
print('修改之后的id为%d:' % info['id'])
  • 添加
    如果有就修改 如果没有就新增键值对
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
info['newLable'] = 'hi'
  • 删除
# 删除元素
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
del info['name']
# 删除整个字段
del info
# 清空整个字典
info.clear()
  • 其他操作
# get(key, 默认值)  如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
info.get('name')
# keys() 显示左右key值
# values() 显示所有的value值
# items() 显示所有的键值对(key-value形式)

set

  • 无重复
  • 无序
  • 是一组key的集合,但不存储value
s = {1, 2, 3}
# 新增
s.add(4)
# 删除
s.remove(4)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EasyExcel停更,FastExcel接力

11月6日消息&#xff0c;阿里巴巴旗下的Java Excel工具库EasyExcel近日宣布&#xff0c;将停止更新&#xff0c;未来将逐步进入维护模式&#xff0c;将继续修复Bug&#xff0c;但不再主动新增功能。 EasyExcel以其快速、简洁和解决大文件内存溢出的能力而著称&#xff0c;官方…

项目实战——高并发内存池

一.项目介绍 本项目——高并发内存池&#xff0c;是通过学习并模仿简化 google 的一个开源项目 tcmalloc &#xff0c;全称 Thread-Caching Malloc&#xff0c;即线程缓存的malloc&#xff0c;模拟实现了一个自己的高并发内存池&#xff0c;用于高效的多线程内存管理&#xff…

结合实例从HCI层分析经典蓝牙连接和配对过程

我们知道&#xff0c;经典蓝牙BREDR的link key协商是在LMP层做的&#xff0c;那么蓝牙Host在鉴权的过程中&#xff0c;会跟BT SOC有哪些交互&#xff1a; 首次配对 在HCI Inuqiry找到想要配对的设备后&#xff0c;Host会调用HCI Create Connection命令去连接对方设备&#xf…

java全栈day20--Web后端实战(Mybatis基础2)

一、Mybatis基础 1.1辅助配置 配置 SQL 提示。 默认在 mybatis 中编写 SQL 语句是不识别的。可以做如下配置&#xff1a; 现在就有sql提示了 新的问题 产生原因&#xff1a; Idea 和数据库没有建立连接&#xff0c;不识别表信息 解决方式&#xff1a;在 Idea 中配置 MySQL 数…

RK356x-11:在win11的WSL中开发SDK

我拿到的SDK建议开发的系统是Ubuntu22.04&#xff08;在SDK-docs中的文档有说明&#xff09;&#xff0c;因此&#xff0c;WSL中要先安装好它。由于PC机上WSL本身不支持aarch64架构&#xff0c;所以&#xff0c;进行ARM64的RK356X开发&#xff0c;需要手动加入支持。用到的支持…

【unity c#】深入理解string,以及不同方式构造类与反射的性能测试(基于BenchmarkDotNet)

出这篇文章的主要一个原因就是ai回答的性能差异和实际测试完全不同&#xff0c;比如说是先获取构造函数再构造比Activator.CreateInstance(type)快&#xff0c;实际却相反 对测试结果的评价基于5.0&#xff0c;因为找不到unity6确切使用的net版本&#xff0c;根据c#9推测是net5…

qemu 共享内存设备——ivshmem

文章目录 背景简单使用参考 背景 vshmem是QEMU提供的一种宿主机与虚拟机之间或多个虚拟机之间共享内存的特殊设备。它有两种形式: ivshmem-plain: 简单的共享内存区域ivshmem-doorbel: 除了共享内存&#xff0c;还能提供基于中断的通信机制 这种设备在虚拟机内部表现为PCI设…

dolphinscheduler服务注册中心源码解析(三)RPC提供者服务整合注册中心注册服务实现源码

RPC提供者服务整合注册中心注册服务实现源码 1.概述2.源码解读思路3.实现2.1.应用服务的RPC服务接口定义2.1.1.MasterServer应用中提供的RPC接口服务2.1.2.WorkerServer应用中提供的RPC接口服务2.2.应用服务的RPC服务接口实现2.2.1.MasterServer应用中提供的RPC接口服务实现类2…

若依的RBAC权限控制框架

若依权限管理框架 Spring Security介绍 Spring Security是spring的权限控制框架&#xff0c;主分为 认证 和 授权认证&#xff1a;是否能进入&#xff08;登录&#xff09;授权&#xff1a;是否有权限访问对应的资源&#xff08;controller能否访问&#xff09; Spring Securit…

Scala_【1】概述

第一章 语言特点环境搭建(Windows)idea编写scalaHelloWorld注意事项 Scala是一门以Java虚拟机&#xff08;JVM&#xff09;为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言 语言特点 Scala是一门多范式的编程语言&#xff0c;Scala支持面向对象和函…

sqoop抽数报错Every derived table must have its own alias

sqoop抽数报错Every derived table must have its own alias 报错如下&#xff1a; ERROR manager.SqlManager: Error executing statement: java.sql.SQLSyntaxErrorException: Every derived table must have its own alias 修改前脚本&#xff1a; –query "select * …

大小鼠智能热板仪 智能冷板仪~根据实验需求和方向选择“冷”or“热”

冷板仪的工作原理 SS-I5IO56IO48O 冷板仪主要通过提供一个可调节温度的冷板&#xff08;通常为金属地板&#xff09;&#xff0c;其温度设定在低温范围内&#xff08;如5℃&#xff09;&#xff0c;用于模拟冷刺激引起的疼痛反应。实验时&#xff0c;动物被放置在冷板上&…

VMware vCenter保姆级安装部署(VMware VCenter Nanny Level Installation and Deployment)

VMware vCenter保姆级安装部署教程 VMware vCenter‌是由VMware开发的一款虚拟化管理平台&#xff0c;主要用于管理和监控虚拟化环境中的虚拟机、主机和存储资源。它提供了一个集中控制的平台&#xff0c;简化了虚拟化基础设施的管理工作&#xff0c;提高了资源利用率和灵活性…

WebGIS实战开源项目:智慧机场三维可视化(学习笔记)

From&#xff1a;新中地 1.简介 智慧机场解决方案&#xff0c;基于数字化大平台&#xff0c;融合AI、大数据、IoT、视频云、云计算等技术&#xff0c;围绕机场“运控、安防、服务”三大业务领域&#xff0c;构建“出行一张脸”及“运行一张图”两大场景化解决方案。 https://…

玩转OCR | 探索腾讯云智能结构化识别新境界

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 玩转OCR 腾讯云智能结构化识别产品介绍服务应用产品特征行业案例总结 腾讯云智能结构化识别 腾讯云智能结构化OCR产品分为基础版与高级版&am…

【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo

【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo 前言摘要引言Task 相关工作方法SDM-UniPS预处理尺度不变的空间光特征编码器像素采样变压器的非局部交互 PS-Mix数据集 实验结果训练细节评估和时间&#xff1a; 消融实验定向照明下的评估没有对…

自动控制系统综合与LabVIEW实现

自动控制系统综合是为了优化系统性能&#xff0c;确保其可靠性、稳定性和灵活性。常用方法包括动态性能优化、稳态误差分析、鲁棒性设计等。结合LabVIEW&#xff0c;可以通过图形化编程、高效数据采集与处理来实现系统综合。本文将阐述具体方法&#xff0c;并结合硬件选型提供实…

VUE 3.0 如何新建项目 详细教程 附环境搭建 推荐

本人新入手一台电脑&#xff0c;需要安装各种环境配置&#xff0c;顺便把过程记录一下&#xff0c;方便自己以后查看&#xff0c;也欢迎大家参考交流。 目录 一、环境搭建&#xff1a; 1.Node.js安装 2.国内淘宝镜像设置 3.安装vue 环境 二、新建vue项目 1.vue脚手架新建…

牛客网刷题 ——C语言初阶——BC114 小乐乐排电梯

1.牛客网 &#xff1a;BC114 小乐乐排电梯 题目描述&#xff1a; 小乐乐学校教学楼的电梯前排了很多人&#xff0c;他的前面有n个人在等电梯。电梯每次可以乘坐12人&#xff0c;每次上下需要的时间为4分钟&#xff08;上需要2分钟&#xff0c;下需要2分钟&#xff09;。请帮助…

UE5 渲染管线 学习笔记

兰伯特 SSS为散射的意思 带Bias的可以根据距离自动切换mip的卷积值 而带Level的值mipmaps的定值 #define A8_SAMPLE_MASK .a 这样应该就很好理解了 这个只采样a通道 带Level的参考上面的 朝左上和右下进行模糊 带Bias参考上面 随机数 4D 3D 2D 1D