〇引言
橘子们大家好,学完这一篇,可以说python最基本的知识就完结了。对大家来说是迈向新高的路途,对我来说,我也要去挑战更高难度的博客。我在深圳技术大学跟着OIC开源创客社团学习MindSpore AI框架,并报名了关于电子大赛(其实我也不知道叫啥)的学习小组(学习自动化专业相关,如模电,数电,单片机)我可能在这一期后去出一篇关于初始MindSpore的博客,向大家以简约的语言介绍她。
现在是写完博的我,我发现三剑客范围太广,有一些必须补充的细节,所以我的mindspore可能会鸽
好啦,回到正题。如题所言,列表,元组,字符串是python语言的数据类型三剑客
【Python的数据类型有数字(整数,浮点数,复数),布尔类型(0 false,1 true),字符串(’’),列表([]),字典({:}),元组(()),集合({})】
因此他们是有类似语法——增,删,改,查,这里的内容是显而易见的多,但我的任务只需要让橘子们知道“哦,原来( )有( )的功能 ”
python的官方文档:3.10.8 Documentation (python.org)
一 思维导图
第三章
Ⅰ李斯特·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
列表也可以实现切片功能(切片我还没讲过,可以先参考一下这个,现阶段用的少,等有时间整一个)
列表是由按一定顺序排列的元素组成,其中的元素根据需要可能会发生变化。其中,列表元素的添加、删除或修改等是最常见的操作。
增
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()找一个参数所在的下标位置,从右往左找 找不到报错
替换
- expandtabs() 将tab替换为空格 在括号里设定为几个空格(tab=4个空格)
- 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