【Python教程】4-字符串、列表、字典、元组与集合操作

在整理自己的笔记的时候发现了当年学习python时候整理的笔记,稍微整理一下,分享出来,方便记录和查看吧。个人觉得如果想简单了解一名语言或者技术,最简单的方式就是通过菜鸟教程去学习一下。今后会从python开始重新更新,然后更新深度学习的一些框架,一些代码,从CV到NLP都会有相应的讲解,包括大模型训练以及部署。先画个饼,有时间开始慢慢更新。
2024年6月10日更新【Python教程】4-字符串、列表、字典、元组与集合操作

文章目录

  • 1. 字符串常用方法
  • 2. 字符串分割和连接
  • 3. 对齐方法示例
  • 4. 元组
  • 5. 列表
    • 常用方法
  • 6、字典
    • 遍历方式
    • 字典的增删改查
  • 7. 集合
  • 8. 类型转换
  • 9、方法

1. 字符串常用方法

a. 查找、替换、统计find()      # 查找子串的索引,如果找不到返回-1。(掌握)rfind()     # 从右向左查找子串的索引。(了解)index()     # 查找子串的索引,找不到子串时抛出异常。(了解)rindex()    # 从右向左查找子串的索引,与rfind()类似。(了解)replace()   # 替换子串,可以指定替换的次数,默认替换所有。(掌握)count()     # 计算子串在字符串中出现的次数。(掌握)b. 分割、连接split()         # 根据分隔符分割字符串,返回列表。(掌握)splitlines()    # 按行分割字符串,返回每一行为列表元素。(理解)partition()     # 将字符串分割为三部分,返回一个元组。(了解)rpartition()    # 从右侧开始分割字符串,返回一个元组。(了解)join()          # 使用指定字符串连接序列中的元素。(掌握)c. 判断startswith()    # 检查字符串是否以指定子串开始。(掌握)endswith()      # 检查字符串是否以指定子串结束。(掌握)isupper()       # 检查字符串是否由大写字母组成。(理解)islower()       # 检查字符串是否由小写字母组成。(理解)isdigit()       # 检查字符串是否只包含数字。(理解)isalpha()       # 检查字符串是否只包含字母。(理解)isalnum()       # 检查字符串是否只包含字母和数字。(理解)isspace()       # 检查字符串是否只包含空白字符。(理解)d. 转换upper()         # 将字符串中的小写字母转为大写。(理解)lower()         # 将字符串中的大写字母转为小写。(理解)title()         # 将字符串中每个单词的首字母大写。(理解)capitalize()    # 将字符串的第一个字母大写。(理解)e. 对齐center()        # 字符串居中,并使用指定字符填充至长度 width。(理解)rjust()         # 字符串右对齐,并使用指定字符填充至长度 width。(理解)ljust()         # 字符串左对齐,并使用指定字符填充至长度 width。(理解)f. 去除空白strip()         # 去除字符串两端的空白字符。(理解)lstrip()        # 去除字符串左侧的空白字符。(理解)rstrip()        # 去除字符串右侧的空白字符。(理解)

2. 字符串分割和连接

分割时,如果需要对任何空白字符进行分割,则不需要写入任何参数。

def string_test():s = 'Hello World Python World'print(s.split("o", 1))  # 按'o'分割一次print(s.split())         # 默认空白字符分割ss = s.split()print("_".join(ss))      # 使用'_'连接列表中的元素print(s.replace(' ', '#'))  # 空格替换为'#'print(s.split("World"))    # 按'World'分割print(s.partition('World')) # 按'World'三部分分割

3. 对齐方法示例

def string_test():s = 'Hello World Python World'ss = 'Hello'print('|' + ss.center(11, '_') + '|')  # 居中对齐,使用'_'填充print('|' + ss.rjust(11, '_') + '|')   # 右对齐print('|' + ss.ljust(11, '_') + '|')   # 左对齐

在这里插入图片描述

4. 元组

元组使用小括号,不可修改,列表使用方括号,字典使用花括号。

t = (1,)  # 定义只有一个元素的元组
t6 = tuple()
t7 = tuple("Hello")

元组可以使用下标访问,但不能修改内容。

def tuple_test():t = (1, 2, 3, 4, "hello", ('a', 'b', 'c'), 'a', 'b')for v in t:if isinstance(v, tuple):for i in v:print(i)else:print(v)print('t.count='+str(t.count('a')))print('t[0]= '+str(t[0]))print(type(t[0]))print(type(t))tt = (1,)print(type(tt)) # 常用方法只有index和count

5. 列表

列表的定义与操作,支持增、删、查、改等操作。

def list_test():l = [1, 2, 3, 4, 99, 6]print(l)l.sort(reverse=True)  # 倒序排序print(l)l.reverse()           # 反转列表print(l)

使用列表时,避免在循环中修改列表大小(如删除元素)。

常用方法

都是在原list上进行操作,

        增:append()        # 放最后extend()        # 拓展,将参数中的容器对象中的每个元素添加拓展到源列表中 insert()        # 可以指定位置,插入数据时不存在下标越界的问题修:下标修改查:index()count()in (掌握)not in删:pop() 参数是索引,默认删除最后一个remove() 删除指定对象,当有多个相同对象的时候只删除第一个clear() 清空但列表存在del 全没了

使用列表时,不要再循环遍历的时候删除元素

def list_test():l = [1, 2, 3, 4, 2.2]l.append(66)l.extend([4, 5, 6])print(l)print(3 in l)l.pop()print(l)

在这里插入图片描述

6、字典

定义时候使用花括号 {key:value,…} 利用键值对

l = {'one': '周一', 'two': '周二', 'three': '周三', 'four': '周四'}

key一般情况使用字符串类型充当(所有不可变的类型都可以),只要所有可以hash的对象都可以作为key

字典也是通过下标访问,但不是通过索引,而是通过key直接访问,但是最好通过get的方法

遍历方式

四种方式 key keys values items

默认打印的是key(for in的时候)

def list_travel1(l):for k in l:print(f'默认方式 key{k}->value{l[k]}')return None
def list_travel2(l):print(l.keys())for k in l.keys():print(f'keys  key{k}->value{l[k]}')return None
def list_travel3(l):print(l.values())for v in l.values():print(f'values:{v}')return None
def list_travel4(l): # 解包 for k,v in l.items():print(f'key={k} values-{v}')return None
def list_travel5(l):print(l.items())for item in l.items():print(f'keys=={item[0]} values=={item[1]}')
item = (1,2,3,4,5)
a,b,c,d,e=item # 这个就是解包,必须一对一

在这里插入图片描述

字典的增删改查

字典中的key具有唯一性,如果key不存在就是增加,如果存在就是修改

查找的时候用get,get不会崩溃

popitem删除最后一个键值对

清空也可以用clear

del d[‘e’ ]

dic = {}
print(dic)
dic['a'] = 1
print(dic)
dic['b'] = 2
dic['c'] = 2
dic['d'] = 2
dic['e'] = 5
print(dic)dic['e'] = 10
print(dic)
dic.popitem()
print(dic)
dic.pop('a')
print(dic)del dic['b']
print(dic)

在这里插入图片描述

python3.5之后,字典都是有序的,定义的顺序是啥就是啥

7. 集合

集合中的数据不允许重复,集合用来去重,集合也是无序的

定义: set(可遍历的对象),也可以用花括号,花括号不是键值对就是集合,用键值对的形式就是字典

s = set() #定义一个空集合

集合不支持下标访问的

8. 类型转换

演示了字符串、列表、集合和元组之间的转换。

st = 'hello'
print(st + "  " + str(type(st)))
st = list(st)
print(st)
print(str(type(st)))
st = set(st)
print(st)
print(str(type(st)))
print(''.join(st))

9、方法

img

in 在字典中判断的是ket

img

max和min

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

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

相关文章

AI大模型探索之路-实战篇16:优化决策流程:Agent智能数据分析平台中Planning功能实践

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

现代x86汇编-环境安装

今天端午节,独自在家,翻阅了张银奎老师编写的《现代x86汇编语言程序设计》一书,前言部分说明书中示例代码都是用微软visual C工具编写并使用微软宏汇编(著名的MASM)编译的,好久没有用微软vc了,假…

详解FedProx:FedAvg的改进版 Federated optimization in heterogeneous networks

FedProx:2020 FedAvg的改进 论文:《Federated Optimization in Heterogeneous Networks》 引用量:4445 源码地址: 官方实现(tensorflow)https://github.com/litian96/FedProx 几个pytorch实现:…

基于STM32的595级联的Proteus仿真

文章目录 一、595级联1.题目要求2.思路3.仿真图3.1 未仿真时3.2 模式A3.2 模式B3.3 故障模式 二、总结 一、595级联 1.题目要求 STM32单片机,以及三个LED灯对应红黄绿灯,IIC的OLED显示屏,温湿度传感器DHT11,两个独立按键和两个5…

MySQL时间和日期类型详解(零基础入门篇)

目录 1. DATE 2. DATETIME 3. TIMESTAMP 4. TIME 5. YEAR 6. 日期和时间的使用示例 以下SQL语句的测试可以使用命令行,或是使用SQL工具比如MySQL Workbench或SQLynx等。 在 MySQL 中,时间和日期数据类型用于存储与时间相关的数据,如何…

重温共射放大电路

1、放大概念 小功率信号变成一个大功率信号,需要一个核心器件做这件事,核心器件的能量由电源提供,通过核心器件用小功率的信号去控制大电源,来实现能量的转换和控制,前提是不能失真,可以用一系列正弦波进行…

Running Gradle task ‘assembleDebug‘ Flutter项目

基于Android方面运行Flutter项目一直卡在 Launching lib\main.dart on Android SDK built for x86 in debug mode… Running Gradle task ‘assembleDebug’… 基础原因: 默认存放Gradle插件包的Maven仓库是国外(需VPN) 我的原因: 缺少JDK和缺少Androi…

【Oracle】Oracle导入导出dmp文件

文章目录 前言一、什么是dmp?二、imp/impdp、exp/expdp对比及示例1.区别2.imp/impdp对比及示例a. impb. impbp 3.exp/expdp对比及示例a. expb.expdp 3.其他事项 三、执行导入导出前置条件1.创建角色并授权2.创建目录映射 前言 在工作中,经常会遇到需要备…

React中的 Scheduler

为什么需要调度 在 React 中,组件最终体现为 Fiber,并形成 FiberTree,Fiber 的目的是提高渲染性能,将原先的 React 渲染任务拆分为多个小的微任务,这样做的目的是可以灵活的让出主线程,可以随时打断渲染&a…

定个小目标之刷LeetCode热题(10)

这道题属于一道中等题&#xff0c;看来又得背题了&#xff0c;直接看题解吧&#xff0c;有两种解法 第一种动态规划法 状态&#xff1a;dp[i][j] 表示字符串s在[i,j]区间的子串是否是一个回文串 状态转移方程&#xff1a;当s[i] s[j] && (j - i < 2 || dp[i 1]…

讨论C++类与对象

讨论C类与对象 C语言结构体和C类的对比类的实例化类对象的大小猜想一猜想二针对上述猜想的实践 this指针不同对象调用成员函数 类的6个默认成员函数构造函数析构函数拷贝构造函数浅拷贝和深拷贝 赋值运算符重载 初始化列表初始化顺序 C语言结构体和C类的对比 在C语言中&#x…

对猫毛过敏?怎么有效的缓解过敏症状,宠物空气净化器有用吗?

猫过敏是一种常见的过敏反应&#xff0c;由猫的皮屑、唾液或尿液中的蛋白质引起。这些蛋白质被称为过敏原&#xff0c;它们可以通过空气传播&#xff0c;被人体吸入后&#xff0c;会触发免疫系统的过度反应。猫过敏是宠物过敏中最常见的类型之一&#xff0c;对许多人来说&#…

xilinx的Aurora8B10B的IP仿真及上板测试(高速收发器十七)

前文讲解了Aurora8B10B协议原理及xilinx相关IP&#xff0c;本文讲解如何设置该IP&#xff0c;并且通过示例工程完成该IP的仿真和上板。 1、生成Aurora8B10B IP 如下图所示&#xff0c;首先在vivado的IP catalog中输入Aurora 8B10B&#xff0c;双击该IP。 图1 查找Aurora 8B10…

基于STM32开发的智能农业监控系统

目录 引言环境准备智能农业监控系统基础代码实现&#xff1a;实现智能农业监控系统 4.1 土壤湿度传感器数据读取4.2 温湿度传感器数据读取4.3 水泵与风扇控制4.4 用户界面与数据可视化应用场景&#xff1a;农业环境监测与管理问题解决方案与优化收尾与总结 1. 引言 随着智能…

Map深度学习

Map Map是一个键值对的集合&#xff0c;和object类似&#xff0c;Map作为构造函数&#xff0c;可以通过全局对象获取到。需要通过new操作创建实例对象&#xff0c;直接调用会报错。Map构造函数接受一个iterable类型的函数&#xff0c;用来初始化Map。 var m new Map([[1, &qu…

央视频官方出品,AI高考智友助你成就高考梦想

大家好&#xff0c;我是小麦。今天分享一款由央视频官方出品的AI工具套件&#xff0c;不仅支持直接使用&#xff0c;同时还具备了开发能力&#xff0c;是一款非常不错的AI产品工具&#xff0c;该软件的名称叫做扣子。 扣子是新一代 AI 应用开发平台。无论你是否有编程基础&…

4000亿薪酬被驳回!马斯克再次讨薪

特斯拉CEO埃隆马斯克的一笔巨额财产&#xff0c;将在数日后的特斯拉股东大会上&#xff0c;由股东投票决定何去何从。 事情是这样的。 3.5研究测试&#xff1a;hujiaoai.cn 4研究测试&#xff1a;askmanyai.cn Claude-3研究测试&#xff1a;hiclaude3.com 2018年&#xff0c;特…

linux的持续性学习

安装php 第一步&#xff1a;配置yum源 第二步&#xff1a;下载php。 yum install php php-gd php-fpm php-mysql -y 第三步&#xff1a;启动php。 systemctl start php-fpm 第四步&#xff1a;检查php是否启动 lsof -i :9000 计划任务 作用&am…

智能水位监测识别报警摄像机:保障水域安全的重要利器

随着城市化进程的加速和气候变化的影响&#xff0c;对水域安全的关注日益增加。为了及时监测水位变化并采取相应措施&#xff0c;智能水位监测识别报警摄像机应运而生。本文将介绍这一创新技术的应用和优势。 传统的水位监测方法通常依赖于传感器&#xff0c;但其存在着安装位置…

java+Vue +Spring boot技术开发的UWB高精度定位技术系统源码 uwb定位系统+基站定位

javaVue Spring boot技术开发的UWB高精度定位技术系统源码 uwb定位系统基站定位 系统采用UWB高精度定位技术&#xff0c;可实现厘米级别定位。UWB作为一种高速率、低功耗、高容量的新兴无线局域定位技术&#xff0c;目前应用主要聚焦在室内高精确定位&#xff0c;例如在工业自动…