首页 > 编程语言 >列表,元组,字符串——数据类型三剑客【python启蒙】python基础的归类学习,内含思维导图

列表,元组,字符串——数据类型三剑客【python启蒙】python基础的归类学习,内含思维导图

时间:2022-10-22 14:33:26浏览次数:69  
标签:Python string python 元素 数据类型 列表 source 字符串 三剑客

〇引言

    橘子们大家好,学完这一篇,可以说python最基本的知识就完结了。对大家来说是迈向新高的路途,对我来说,我也要去挑战更高难度的博客。我在深圳技术大学跟着OIC开源创客社团学习MindSpore AI框架,并报名了关于电子大赛(其实我也不知道叫啥)的学习小组(学习自动化专业相关,如模电,数电,单片机)我可能在这一期后去出一篇关于初始MindSpore的博客,向大家以简约的语言介绍她。

现在是写完博的我,我发现三剑客范围太广,有一些必须补充的细节,所以我的mindspore可能会鸽

    好啦,回到正题。如题所言,列表,元组,字符串是python语言的数据类型三剑客

【Python的数据类型有数字(整数,浮点数,复数),布尔类型(0 false,1 true),字符串(’’),列表([]),字典({:}),元组(()),集合({})】

因此他们是有类似语法——增,删,改,查,这里的内容是显而易见的多,但我的任务只需要让橘子们知道“哦,原来(    )有(    )的功能 ”

python的官方文档:​​3.10.8 Documentation (python.org)​

小甲鱼论坛:​​鱼C工作室-免费编程视频教学|Python教学|Web开发教学|全栈开发教学|C语言教学|汇编教学|Win32开发|加密与解密|Linux教学 - Powered by Discuz! (fishc.com.cn)​

一  思维导图

列表,元组,字符串——数据类型三剑客【python启蒙】python基础的归类学习,内含思维导图_列表

第三章   

Ⅰ李斯特·list

让我们先对列表有一个大概的认识

[1,2,3,4,'五']                #这就是列表
rhyme=[1,2,3,4,4]            #打印列表的每一项,元素可重复且有序
for each in rhyme:
print(each)

1
2
3
4
4
length=len(rhyme)            #查询列表长度
5

列表也可以实现切片功能(切片我还没讲过,可以先参考一下这个,现阶段用的少,等有时间整一个)

​彻底搞懂Python列表切片 - 知乎 (zhihu.com)​

列表是由按一定顺序排列的元素组成,其中的元素根据需要可能会发生变化。其中,列表元素的添加、删除或修改等是最常见的操作。

列表,元组,字符串——数据类型三剑客【python启蒙】python基础的归类学习,内含思维导图_元组_02

append()  在列表末尾添加指定元素(一个)

x=[1,2]
x.append(3)
x
[1, 2, 3]

extend()允许直接添加可迭代对象(必须是可迭代对象),新的内容追加到原列表最后一个元素后面

x
[1, 2, 3]
x.extend([4,5,6])
x
[1, 2, 3, 4, 5, 6]

insert()在列表任意位置加入(insert(下标索引,元素))

x
[1, 2, 3, 4, 5, 6]
x.insert(1,'哈哈')
x
[1, '哈哈', 2, 3, 4, 5, 6]

Python提供了多种不同的方法来实现对列表中元素的删除操作,包括根据元素索引位置或者元素值删除元素的方法。

(1). 删除指定位置的元素

在Python中,调用del函数能够删除指定索引位置的元素,其基本语法如下:

del source_list[index]

  • ​source_list​​:为待修改的列表
  • ​index​​:为待删除元素的位置索引
x
[1, '哈哈', 2, 3, 4, 5, 6]
del x[1]
x
[1, 2, 3, 4, 5, 6]

pop方法 Python​还提供了pop()方法来删除元素,该方法将从源列表删除对应元素,同时返回被删除的元素。其基本语法如下:

deleted_obj = source_list.pop(index)

其中,

  • ​deleted_obj​​:为保存被删除元素的变量,可根据需要自由命名
  • ​source_list​​:为待修改的列表
  • ​index​​:为待删除元素的位置索引
x
[1, 2, 3, 4, 5, 6]
x.pop()
6
x
[1, 2, 3, 4, 5]

*pop和del的区别,细心的橘子应该发现了,他们虽然都删除一个指定位置的元素,但pop函数在删除一个元素后并返回该元素。大白话讲就是,你和你女友分手了,分的彻底就del再也不联系,如果分的不彻底就用pop虽然删手机号了,但你还有她的其他联系方式或已经会背她手机号了。

x=['手机号']
y=del x[0] #y就相当于电话簿或大脑,但已经del不能再记住
SyntaxError: invalid syntax #报错
x=['手机号']
y=x.pop(0)
y
'手机号'

(2). 删除指定的元素

remove()方法就是一个没有感情的删除机器,如果列表存在多个匹配元素,只删第一个(元素不存在会报错)

x=[1,2,2,3]
x.remove(2)
x
[1, 2, 3]

修改列表元素

Python中修改列表元素的方法为,直接将列表中要修改的元素索引指出,然后为其指定新值。其基本语法如下:

source_list[index] = obj

其中,

  • ​source_list​​:为待修改的列表
  • ​index​​:为待修改元素的位置索引
  • ​obj​​:为待元素的新值
x=[1,'二',3]
x[1]=2
x
[1, 2, 3]

整理列表

​Python​​​针对列表数据结构内置提供了​​sort()​​方法,实现对列表元素的排序功能。其基本语法如下:

source_list.sort(reverse=True)

其中,

  • ​source_list​​:待排序的列表;
  • ​sort​​:列表排序函数的语法关键词;
  • ​reverse​​​:​​sort​​​函数的可选参数,如果设置其值为​​True​​​,则进行反向从大到小排序,如果设置为​​False​​或者不填写该参数,则默认进行正向从小到大排序。如果橘子们想了解更多有关列表操作知识,请参考:【美】Eric Matthes著《Python编程——从入门到实践》第三章。
y=[2,6,4,1,2,5,6]
y.sort()
y
[1, 2, 2, 4, 5, 6, 6]

count()查某个元素的个数

x=[1,1,1,2,3]
x.count(1)
3

index(x,start,end)查某个元素,在某个范围内(默认为全部)的索引

x=[1,1,1,2,3]
x.index(2)
3

当不知道某个元素索引值并替换

x[x.index(2)]=4
x
[1,1,1,4,3]

如果有多种元素,只会给第一个的下标索引

列表的加法,乘法

x=[1,2,3]            #直接示范简单易懂
y=[4,5,6]
x+y
[1, 2, 3, 4, 5, 6]
x*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

嵌套列表(二维列表)

matrix=[[1,2,3],[4,5,6],[7,8,9]]
for i in matrix:
print(i)


[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
for i in matrix:
for each in i:
print(each)


1
2
3
4
5
6
7
8
9

二维列表水太深,现在知道就好,因为有一些重要的细节(光是这个就可以有一篇博,所以我就不细说了)

Ⅱ 元组·永恒

我说了这三剑客很相似,所以一下是归类学习

①x=(1,2,3,4)这就是元组tuple,括号与逗号是他的标准,但在一般创建元组时也可以不加括号如x=1,2,3

②元组是有序的,可以用下标索引获取元素

③元组不可变,不可修改(所以交他永恒)

④支持切片

⑤支持count(),index()方法

⑥支持拼接(+)重复(*)

⑦支持嵌套,例((1,2),(3,4))

⑧支持迭代

元组那么专一守恒,那么我们怎么去使用他呢?打包,拆包

元组打包,及生成一个元组,打包也适用任何序列类型(如列表)

t=123,'六',3.14
#这就是打包
#当把他们赋值给三个变量(不一定是三个)时,就是拆包
x,y,z=t
#x=123,y='六',z=3.14

tips  赋值号左边的变量名数量必须跟右侧序列元素数量一致,或者使用*

a,*b='love'
a
'l'
b
['o', 'v', 'e']

注:元组的元素不可变,但如果元组中元素指向一个可变列表,那么我们依然可以修改列表里面的内容

Ⅲ字符串·QUEEN

字符串或串(String​)是由数字、字母、下划线组成的一串字符,在Python​中字符串用单引号或者双引号括起来。我之所以叫她queen,是因为她应用之广泛,功能之强大。因为内容过多,所以主干货形式。因为在日常使用python可以去搜索其使用方法,或从官方文档里查询。

大小写字母

变量.capitalize()         首字母大写

变量.casefold()           所有字母小写【所以语言都可】

​Python​​​提供了​​upper()​​​和​​lower()​​​方法来对字符串进行大小写转换。其中,​​upper()​​会将字符串中的所有字符都转换为大写,​​lower()​​则将所有字符转换为小写。

除此之外,​​Python​​还贴心的提供了​​title()​​方法将字符串所有单词的首字母变成大写,而其他字母依然小写。

各个方法的具体语法如下:

# 将源字符串转换为大写并存入upper_string变量upper_string = source_string.upper()
# 将源字符串转换为小写并存入lower_string变量lower_string = source_string.lower()
# 将源字符串每个词首字母转换为大写并存入title_string变量title_string = source_string.title()

其中,

  • ​source_string​​:待处理的源字符串。

左中右对齐

center(width,fillchar='')   居中 fillchar默认空格

ljust(width,fillchar='')        左对齐

rjust(width,fillchar='')        右对齐

zfill(width)        在左填充

去除字符串首尾空格

​Python​​提供了​​strip()​​方法,可以去除字符串两侧(不包含内部)全部的空格;使用该方法,也可以通过指定参数,去除两侧指定的特定字符。

  • 注意:在指定参数时,如果参数是多个字符,则该方法会将多个字符逐个去比对进行删除(区分大小写),直到首尾两侧没有匹配的字符为止。但是,该方法对字符串中间的字符没有影响。

其基本语法如下:

strip_string1 = source_string.strip()string_strip2 = source_string.strip(target_char)

其中,

  • ​source_string​​:待处理的源字符串;
  • ​strip_string1​​和​​strip_string2​​:处理后的字符串;
  • ​target_char​​:需要从源字符串首尾去除的特定字符。

查找

count(sub[,start[,end]])                   [,start[,end]]用于指定查找的起始和结束位置

用于查找sub参数指定的子字符串在字符串中出现的次数

x='上海自来水来自海上'
x.count('海')
2

x.count('海',0,5)
1

find(sub[,start[,end]])找一个参数所在的下标位置,从左往右找           找不到返回-1

rfind(sub[,start[,end]])找一个参数所在的下标位置,从右往左找          找不到返回-1

index()找一个参数所在的下标位置,从左往右找           找不到报错

rindex()找一个参数所在的下标位置,从右往左找          找不到报错

替换

  1. expandtabs()   将tab替换为空格  在括号里设定为几个空格(tab=4个空格)
  2. Python​提供了replace()方​法,用以替换给定字符串中的子串,其基本使用语法如下:
source_string.replace(old_string, new_string)

其中,

  • ​source_string​​:待处理的源字符串;
  • ​old_string​​:被替换的旧字符串;
  • ​new_string​​:替换的新字符串;
  • ​replace​​:字符串替换方法的语法关键词。

字符串分割

​Python​​提供了​​split()​​方法实现字符串分割。该方法根据提供的分隔符将一个字符串分割为字符列表,如果不提供分隔符则程序会默认把空格(制表、换行等)作为分隔符。其基本使用语法如下:

source_string.split(separator)

其中,

  • ​source_string​​:待处理的源字符串;
  • ​separator​​:分隔符;
  • ​split​​:字符串分割方法的关键词。

例如,用​​+​​、​​/​​还有空格作为分隔符分割字符串。

# coding = utf-8# 待处理字符串source_stringsource_string = '1+2+3+4+5'
# 利用split()方法,按照`+`和`/`对source_string字符串进行分割
print(source_string.split('+'))print(source_string.split('/'))

格式化字符串

​input()​​函数将用户输入的内容当做一个字符串类型,这是获得用户输入的常用方式。​​print()​​函数可以直接打印字符串,这是输出字符串的常用方式。 如下例子展示了如何用变量​​name​​来存储用户的名字,再输出这个变量的内容:

>>>name=input("请输入名字:")请输入名字:郭靖>>>print(name)郭靖

采用格式化输出方式,通过​​format()​​方法将待输出变量整理成期望输出的格式,如:

>>>name=input("请输入一个人的名字:")请输入一个人的名字:郭靖
>>>country=input("请输入一个国家的名字:")请输入一个国家的名字:中国
>>>print("{}来自于{}".format(name,country))郭靖来自于中国

结语

这篇博客就到这里了,对于这三剑客,我会再出一个细节篇,含拼接,拆分,列表推导式,深拷贝,浅拷贝。然后我想去和MindSpore沾沾边。嘿嘿,就这样!!!希望大家能点个赞捏

感谢阅读

标签:Python,string,python,元素,数据类型,列表,source,字符串,三剑客
From: https://blog.51cto.com/u_15818358/5785813

相关文章

  • win10本地python第三方库安装成功,但是pycharm项目无法使用解决方案
    一、背景win10本地python第三方库安装成功,但是pycharm项目无法使用解决方案如本地安装的python中的request库,在pycharm项目中居然无法使用,比较郁闷piplist|findstrre......
  • 利用Python操作Android手机刷抖音
    前言:    很多时候,想要学习一个陌生领域的知识时,需要先定一个或基础或高阶的目的,这个目标最好带有趣味性,然后锚定这个目标;或许最终目标很轻松就被实现了,也或许最终发......
  • Python: Flyweight Pattern
    DuFlyweight.py#享元模式FlyweightPatterngeovindu,GeovinDu,涂聚文importtimeclassArrow:def__init__(self,x,y,z,velocity):self.x=x......
  • Python爬取猫眼电影榜单电影数据以及遇到问题总结
    代码importcsvimportrandomimportreimporttimefromurllibimportrequestfromfake_useragentimportUserAgent#定义一个爬虫类classMaoyanSpider(obje......
  • python打印菱形
    #_*_encoding:utf-8_*_@author:tyhery2018/9/6defprintStar(intNum):s="*"spaceLength=intNumblockCount=int(intNum/2+1)......
  • Java基本数据类型占用字节大小简介说明
    转自:​​http://www.java265.com/JavaMianJing/202205/16515929083261.html​​下文笔者讲述Java中基本数据类型占用字节大小的简介说明,如下所示基础数据类型是所有数据类......
  • Python Easyocr 图片文字识别
    前段时间做了车牌识别相关的内容分享,参看:​​车牌识别(1)-车牌数据集生成​​​​车牌识别(2)-搭建车牌识别模型​​今天给大家分享一个简单的OCR文本识别工具:easyocr。这个模块......
  • Python Easyocr 图片文字识别
    前段时间做了车牌识别相关的内容分享,参看:​​车牌识别(1)-车牌数据集生成​​​​车牌识别(2)-搭建车牌识别模型​​今天给大家分享一个简单的OCR文本识别工具:easyocr。这个模块......
  • 建议收藏| 学python的看过来,Python 史上最全第三方库收集
    发现一个宝藏网站:GitHub上有一个Awesome-XXX系列的资源整理,这个系列以“全”闻名,但凡是有一定知识度的领域、语言、框架等,都有自己的awesome-xxx系列的项目。今天......
  • 快学起来!python入门自学必看
    记得刚开始学python的时候,各种买书各种找资料,最后发现资料找了一大堆,但都是东一块西一块,内容不全且不系统,无意间发现这个宝藏网站,真的是太全了,当作工具书,时不时的翻翻,总会......