【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.mfbz.cn/a/697580.html

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

相关文章

7.高级纹理

前面的基础纹理包括法线纹理、渐变纹理和遮罩纹理等。这些纹理都属于低纬(一维或二维)纹理。 立方体纹理(Cubemap)实现环境映射 渲染纹理(Render Texture) 程序纹理(Procedure Texture&#…

java线程生命周期介绍

Java线程的生命周期包含以下几个状态: 1.新建(New):线程对象被创建,但是还没有调用start()方法。 1.运行(Runnable):线程正在运行或者是就绪状态,等待CPU时间片。 1.阻塞(Blocked):线程暂时停止执行&…

每日5题Day21 - LeetCode 101 - 105

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; class Solution {public boolean isSymmetric(TreeNode root) {if(root null){return true;}Stack<…

已解决Error || KeyError: ‘The truth value of a Series is ambiguous‘

已解决Error || KeyError: ‘The truth value of a Series is ambiguous’ &#x1f680; 原创作者&#xff1a; 猫头虎 作者微信号&#xff1a; Libin9iOak 作者公众号&#xff1a; 猫头虎技术团队 更新日期&#xff1a; 2024年6月6日 博主猫头虎的技术世界 &#x1f3…

第十篇——等价性:信息是如何压缩的?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 基于信息是如何进行压缩的&#xff0c;引出来等价信息的概念&#xff1b;…

如何制定工程战略

本文介绍了领导者如何有效制定工程战略&#xff0c;包括理解战略核心、如何收集信息并制定可行的策略&#xff0c;以及如何利用行业最佳实践和技术债务管理来提升团队效能和产品质量。原文: How to Build Engineering Strategy 如果你了解过目标框架&#xff08;如 OKR&#xf…

某药监局后缀(第一部分)

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可禁止转载&#xff…

Unity编辑器扩展,快捷键的使用

代码部分 编辑器界面 使用方法&#xff1a; 使用方法和如图1一样&#xff0c;只需要在Menuitem的路径后面加上标识符号就行。 "#"对应的是shift "&"对应的是Alt "%"对应的是ctrl 比如我图中的是&#xff0c;%#s对应的是CtrlShifts&…

ReentrantLock底层原理

ReentrantLock public ReentrantLock() {sync new NonfairSync(); }public ReentrantLock(boolean fair) {sync fair ? new FairSync() : new NonfairSync(); }ReentrantLock 的默认实现是非公平锁&#xff0c;实际上 ReentrantLock 中的方法&#xff0c;几乎都让 sync 实现…

【C语言】11.字符函数和字符串函数

文章目录 1.字符分类函数2.字符转换函数3.strlen的使用和模拟实现4.strcpy的使用和模拟实现5.strcat的使用和模拟实现6.strcmp的使用和模拟实现7.strncpy函数的使用8.strncat函数的使用9.strncmp函数的使用10.strstr的使用和模拟实现11.strtok函数的使用12.strerror函数的使用 …

买CPU怕买到假货?这担忧属实有点……

这担忧属实有点多了 前段时间有朋友问小白&#xff1a;买CPU会买到假的吗&#xff1f; 啥&#xff1f;CPU还有假的&#xff1f; 这个问题让这几天闷闷不乐的小白笑得根本停不下来。 如果有哪个小伙伴能手搓个CPU出来&#xff0c;那这位小伙伴估计就不愁财富不到家了。 正文…

爬虫工具yt-dlp

yt-dlp是youtube-dlp的一个fork&#xff0c;youtube-dlp曾经也较为活跃&#xff0c;但后来被众多网站屏蔽&#xff0c;于是大家转而在其基础上开发yt-dlp。yt-dlp的github项目地址为&#xff1a;GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloaderA …

入侵报警系统的智慧核心——ARMxy工控机深度应用

智能安防领域高清视频监控、人脸识别门禁系统以及入侵报警系统的智能化升级&#xff0c;正以前所未有的速度推动着行业的变革。在这场变革中&#xff0c;ARMxy工业计算机以其卓越的性能、高度的灵活性及强大的集成能力&#xff0c;成为了众多安防解决方案中的核心组件。 高清视…

IIR滤波器的结构比较(Direct I and Direct II Form)

在 IIR 滤波器的设计和实现中&#xff0c;直接 I 型和直接 II 型结构的主要区别在于计算顺序和存储延迟项的方式。 直接I型结构 特点&#xff1a; 级联形式&#xff1a;直接I型结构的传递函数可以表示为两个级联部分&#xff1a;一个由分子系数组成的部分和一个由分母系数组…

MySQL高性能(MySQL锁)

MySQL性能系列 MySQL锁 前言1. 死锁机制2. 思维导图与锁划分介绍3. 粒度划分锁3.1. 全局锁3.2. 页级锁&#xff08;Page-level locking&#xff09;3.3. 表级锁&#xff08;Tables-level lock&#xff09;○ 共享锁&#xff08;表级&#xff09;○ 排他锁&#xff08;表级&…

字节面试:CPU100% 如何处理?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的线上问题的场景题&#xff1a; 1.CPU100%&#xff0c;你是怎么处理的&…

HTML做成一个粒子漩涡特效页面

大家好&#xff0c;今天制作制作一个粒子漩涡特效的页面&#xff01; 先看具体效果&#xff1a; 要在一个单一的 index.html 页面中实现粒子漩涡特效&#xff0c;我们可以使用HTML、CSS和JavaScript&#xff08;不需要外部库&#xff09;。下面是一个简单的例子&#xff0c;展…

OBS 录屏软件 for Mac 视频录制和视频实时交流软件 安装

Mac分享吧 文章目录 效果一、准备工作二、开始安装注意事项&#xff1a;包内有两个版本及圆形图片&#xff0c;请根据自身需要版本进行安装演示为&#xff1a;MacBook Pro M3芯片1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff08;最终目的&#xff1a;安装进…

【全网最简单的解决办法】vscode中点击运行出现仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才可用

首先确保你是否下载好了gcc编译器&#xff01;&#xff01;&#xff01; 检测方法&#xff1a; winR 打开cmd命令窗 输入where gcc(如果出现路径则说明gcc配置好啦&#xff01;) where gcc 然后打开我们的vscode 把这个文件删除掉 再次点击运行代码&#xff0c;第一个出现…

强烈推荐 Setapp 上的 Mac 优质软件

Setapp 一款专为 macOS 设计的软件订阅平台&#xff0c;目前提供高达 240 款精心筛选的高品质应用程序&#xff0c;只需每月 9.9 美元的订阅费&#xff0c;即可畅享所有正版软件的使用权。让使用者无忧享受正版软件的稳定性和安全性&#xff0c;彻底告别盗版软件可能引发的风险…