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

news2024/10/5 18:29:08

在整理自己的笔记的时候发现了当年学习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.coloradmin.cn/o/1809816.html

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

相关文章

shell编程(四)—— 运算符

和其他编程语言一样,bash也有多种类型的运算符,本篇对bash的相关运算符做简单介绍。 一、运算符 1.1 算术运算符 常见的算术运算符,如加()、减(-)、乘(*)、除&#xf…

Qt安装时出现无法下载存档,环境配置,main中自定义类编译不过问题

1. Qt安装时出现无法下载存档 进入Qt安装程序exe所在的文件目录,一般在下载文件夹,右键打开cmd。cmd输入:对应的exe镜像提速。 .\qt-online-installer-windows-x64-4.8.0.exe --mirror https://mirrors.cloud.tencent.com/qt/ 2. 环境配置 …

统计信号处理基础 习题解答10-11

题目 我们希望根据一个人的身高来估计他的体重。为了判断其可行性,对N100个人取数据,产生有序的数据对(h,w),其中h代表身高,w代表体重。得到的数据如图10.9(a)所示的。解释你如何利用MMSE估计量根据一个人的身高来猜测他的体重。对于这些数据的建模有些什么样的假设…

6、后端项目初始化

打开idea后, New Project ,用Maven构建 Spring Boot 项目 点击Next后:先勾选两个基本的依赖,后面再手动添加其它需要的依赖 Spring Web: 表示是一个web应用程序 Lombok:写实体类的时候添加Data注解后就会自动加上g…

npm install 的原理

1. 执行命令发生了什么 ? 执行命令后,会将安装相关的依赖,依赖会存放在根目录的node_modules下,默认采用扁平化的方式安装,排序规则为:bin文件夹为第一个,然后是开头系列的文件夹,后…

关于头条项目经验面试题的总结

文章目录 前言一、论坛项目经典话术二、请你介绍一下你最近的项目吧2.1 话术1 三、你的公司的开发环境是怎么搭建的?四、登录你们是怎么做的?4.1 账号密码登录4.2 手机验证码发送4.2.1 手机验证码发送4.2.2 手机验证码登录 五、用户行为限流是怎么做的&a…

Java面向对象-方法的重写、super

Java面向对象-方法的重写、super 一、方法的重写二、super关键字1、super可以省略2、super不可以省略3、super修饰构造器4、继承条件下构造方法的执行过程 一、方法的重写 1、发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行…

1000道互联网大厂面试题:ZooKeeper+Dubbo+Spring+MySQL等(含答案)

然后存储回内存,这个过程可能会出现多个线程交差。 24、a a b 与 a b 的区别 25、我能在不进行强制转换的情况下将一个 double 值赋值给 long类型的变量吗? 26、3*0.1 0.3 将会返回什么?true 还是 false? 27、int 和 Inte…

C语言学生管理系统

整理U盘发现一个C语言写的学生管理系统&#xff0c;全部代码放放我上传的资源里了 #include<stdio.h> #include<stdlib.h> #include<string.h>//需要用到strcmp函数#define LEN 15//姓名和学号的最大字符数 #define N 50//最大学生人数int n 0, t 1;//n代表…

企业微信应用 应用号内消息链接无法在企微内置浏览器打开 windows PC客户端 问题解决

问题 需求是每周在企微的应用号上发送周报&#xff0c;周报中会带着进入系统的链接&#xff0c;点击进入可以查看详情。系统需要登录鉴权&#xff0c;因此需要在内置浏览器打开便于自动认证。 但是&#xff0c;在企微应用号发送的链接&#xff0c;手机上可以正常使用企微内置…

【Vue】请求动态渲染数据

目标 请求获取数据存入 vuex, 映射渲染 安装 axios yarn add axios准备actions 和 mutations App.vue页面中调用 action, 获取数据 验证数据是否存储成功 动态渲染 cart-item.vue

现实转虚拟:Video2Game引领3D互动体验

在当今数字化时代&#xff0c;虚拟环境的创建对于游戏开发、虚拟现实应用和自动驾驶模拟器等多个领域至关重要。然而&#xff0c;传统的虚拟环境创建过程不仅复杂而且成本高昂&#xff0c;通常需要专业人员和专业软件开发工具的参与。例如&#xff0c;著名的《侠盗猎车手V》以其…

Java_中间件——Redis

Redis 介绍&#xff1a; Redis是一个基于内存的key-value结构数据库&#xff08;MySQL是通过数据文件方式存储在磁盘上&#xff0c;数据结构是二维表&#xff09; 特点&#xff1a; 更改配置文件&#xff1a; 使用密码&#xff1a; redis默认是不需要密码的&#xff0c;如果…

苹果WWDC大会AI亮点:大揭晓

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

vscode 中 eslint 无效?npm init 是什么?

vscode 中 eslint 无效 我想要给一个项目添加 eslint&#xff0c;按照 eslint 官方指南操作&#xff1a; npm init eslint/configlatest自动安装了相关依赖并创建配置文件 eslint.config.mjs。 按理说&#xff0c;此刻项目应该已经配置好 eslint 了。但是我的编辑器 vscode …

初识springclould到生产者消费者的RPC通信

SpringClould SpringBoot和SpringClould搭建springcloud创建项目管理实体类模块服务提供者模块消费者 Eureka 服务注册与发现 SpringBoot和SpringClould springboot和springclould都是spring系列的衍生品&#xff0c;都可以在spring的官网找到对应的参考文档和学习路线以及核心…

贪心算法06(leetcode738,968)

参考资料&#xff1a; https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 738. 单调递增的数字 题目描述&#xff1a; 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。…

Python 学习flask创建项目

1、使用pycharm创建flask项目 2、运行访问地址 3、可以看到访问地址内容 4、可以增加路由&#xff0c;尝试访问获取参数

‘AndroidStudio工具平台’尝试运行‘Android原生项目’

AndroidStudio工具平台 (内嵌Intelli IDEA集成环境) /Users/haijunyan/Library/Android/sdk 配置环境变量: #adb命令,安装APK查看连接设备 platform-tools #emulator命令,通过命令创建模拟器 tools #用NDK框架搭建的项目,用到下面的命令编译 ndk-bundle 等等 //查看当前设备…

Java--递归

1.递归就是A方法调用A方法&#xff0c;也就是调用自己本身 2.利用递归可以用简单的程序来解决一些复杂的问题&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#xff0c;递归策略只需少量的程序就可描述出解题过程所需要的多次重复…