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')) # -1print(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)
相关文章:

Python(二)str、list、tuple、dict、set
string name abcdefprint(name[0]) #a # 切片:取部分数据 print(name[0:3]) # 取 下标为0,1,2的字符 abc print(name[2:]) # 取 下标为2开始到最后的字符 cdef print(name…...

如何在谷歌浏览器中设置邮件客户端
在日常生活和工作中,电子邮件已经成为不可或缺的沟通工具。对于使用谷歌浏览器的用户来说,将Chrome设置为默认邮件客户端可以带来诸多便利。本文将详细介绍如何在谷歌浏览器中设置邮件客户端,帮助大家轻松实现这一目标。 在谷歌浏览器中设置邮…...

Robot Framework搭建自动化测试框架
1.配置环境 需要安装jdk8,andrid sdk(安装adb),pycharm编译环境以及软件 安装Robot Framework 首先,你需要安装Robot Framework,可以使用 pip 进行安装: pip install robotframework安装所需的…...

Linux——字符设备驱动控制LED
目录 驱动模块的加载和卸载 驱动程序Makefile编写 字符设备注册与注销 字符设备驱动模板 应用程序对驱动读写操作 iounmap函数 LED寄存器物理地址映射到虚拟地址 应用程序代码编写 Linux驱动的两种运行方式: 1、将驱动编译进Linux内核中,也就是zIm…...

云边端架构的优势是什么?面临哪些挑战?
一、云边端架构的优势 降低网络延迟:在传统集中式架构中,数据需传输到云计算中心处理,导致网络延迟较高。而云边端架构将计算和存储推向边缘设备,可在离用户更近的地方处理数据,大大降低了网络延迟,提升了用…...
Effective C++ 条款 01:视 C++ 为一个语言联邦
文章目录 条款 01:视 C 为一个语言联邦关键点 条款 01:视 C 为一个语言联邦 C 是一个复杂而多样化的编程语言,可以将其视为由多个子语言(sublanguage)组成的联邦。为了更好地理解和使用 C,需要认识它的四个…...
Redis分布式锁释放锁是否必须用lua脚本?
无lua脚本释放锁: public void unlock(String key, String uniqueValue) {String value redisDao.getString(key);if (value ! null && value.equals(uniqueValue))redisDao.delete(key); }使用lua脚本释放锁: // LUA脚本 -> 分布式锁解锁原…...

JVM系列(十三) -常用调优工具介绍
最近对 JVM 技术知识进行了重新整理,再次献上 JVM系列文章合集索引,感兴趣的小伙伴可以直接点击如下地址快速阅读。 JVM系列(一) -什么是虚拟机JVM系列(二) -类的加载过程JVM系列(三) -内存布局详解JVM系列(四) -对象的创建过程JVM系列(五) -对象的内存分…...
数据中心虚拟化与高可用性架构实施指南
数据中心虚拟化与高可用性架构实施指南 项目背景 随着业务的不断扩展和技术的迭代更新,公司决定采用虚拟化技术和构建高可用性架构来提高数据中心的资源利用率和业务连续性。本项目旨在详细描述运维人员在实施数据中心虚拟化和高可用性架构过程中的关键步骤和任务…...
对文件内的文件名生成目录,方便查阅
import os import re# 定义要查找的目录路径 path r"J:\...\顺序目录" # 要遍历的主目录路径# 定义输出的目录文件路径 output_file r"J:\...\目录_中文文件.txt" # 保存结果的文件路径# 判断文件名是否包含中文字符 def contains_chinese(text):retur…...
leetcode hot100 轮转数组
189. 轮转数组 已解答 中等 相关标签 相关企业 提示 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮…...

定位方式:css
使用相对路径 div ul #div下的所有ul,空格表示相对路径(这个实际中用的多一些) 绝对路径-一般不用绝对路径 html>head>div,“>”表示根路径 使用class名称定位 使用.表示 使用id定位 使用#表示 使用属性定位 [属性名…...

谷歌浏览器的网络连接问题解决方案
在数字化时代,网络浏览器已成为日常工作和生活中不可或缺的工具。谷歌浏览器以其快速、稳定和丰富的功能深受用户喜爱。然而,就像其他软件一样,谷歌浏览器也可能遇到网络连接问题,这可能由多种因素引起。本文将为您提供一系列解决…...

保护模式基本概念
CPU 架构 RISC(Reduced Instruction Set Computer) 中文即"精简指令集计算机”。RISC构架的指令格式和长度通常是固定的(如ARM是32位的指令)、且指令和寻址方式少而简单、大多数指令在一个周期内就可以执行完毕 CISC&…...
Linux程序设计(第四版)| 学习笔记
上次学习Linux相关内容还是上学的时候为了应付考试,最近有项目涉及Linux,重新学习以下。 很多年前关于Linux的总结 一、入门 1.概念 (1) UNIX 1)定义:指的是一种遵循特定规范的计算机操作系统。 2)特点:简单性、集中性、可重用…...
【Python-中级】Python中的线程池:ThreadPoolExecutor
Python中的线程池:from concurrent.futures import ThreadPoolExecutor 在Python中,实现多线程编程的方法有很多,而ThreadPoolExecutor 是一个简单且高效的线程池工具。它提供了高层次的接口,用于并发地运行任务,同时隐藏了许多复杂的底层细节,非常适合日常的多线程任务…...
医疗信息系统有哪些
医疗信息系统(Health Information Systems, HIS)是用于管理和存储患者健康数据、医疗记录、医院运营数据等信息的技术平台。这些系统通过自动化、集成和分析数据,提高医疗服务的效率、质量和安全性。以下是一些主要的医疗信息系统及其功能&am…...

JVM系列(十二) -常用调优命令汇总
最近对 JVM 技术知识进行了重新整理,再次献上 JVM系列文章合集索引,感兴趣的小伙伴可以直接点击如下地址快速阅读。 JVM系列(一) -什么是虚拟机JVM系列(二) -类的加载过程JVM系列(三) -内存布局详解JVM系列(四) -对象的创建过程JVM系列(五) -对象的内存分…...

修改采购订单BAPI学习研究-BAPI_PO_CHANGE
这里是修改采购订单BAPI,修改订单数量的简单应用 代码 *&---------------------------------------------------------------------* *& Report Z_BAPI_PO_CHANGE *&---------------------------------------------------------------------* *& C…...

使用uniapp开发微信小程序-框架搭建
最近要开发一个小程序,为了降低学习成本,最后还是选择使用uniapp来开发,但是由于电脑性能不行,实在不想多跑一个应用程序,就简单搭建了一个可以用vscode跑的uniapp项目。 项目整体技术栈:vue3 pinia type…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...