全网最全Python的基本用法,序列,列表,字符串,方法解析(案例)

Posted yk 坤帝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网最全Python的基本用法,序列,列表,字符串,方法解析(案例)相关的知识,希望对你有一定的参考价值。

个人公众号:yk 坤帝
后台回复 基础学习系列 获取完整源代码

1. 序列概述、常用的序列操作

在Python中,最常用且最基础的数据结构是序列,英文为sequence。序列中的每个元素都设有对应的编号,并且使用这些标号来查找这些元素,因此也通常称编号为这些元素的位置或索引。另外一点非常重要的是,序列的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,依此类推。

Python中有多种序列,但最常见的是列表和元组两类,他们除了最基本的操作相同外,也会有一定的区别:列表中的元素是可以修改的,而元组不可以修改。

适用于所有序列的操作包括索引、 切片、 相加、 相乘和成员资格检查等等,下面会通过举出一些例子来对这些内容进行详细地讲解。

1)索引
使用索引来查找序列中的元素,索引的描述方式为‘[]’。方框中的元素表示索引的元素位置,它可以取正数,也可以取负数。当使用负数-n时,表示从右(即从最后一个元素)开始往左数,第n个元素的查找。

【例 3-1】

In[1]:	number_list = [0,1,2,3,4,5,6,7,8,9]
In[2]:	number_list[3]
Out[2]:	3
In[3]:	number_list[-1]
Out[3]:	9

2)切片

索引通常是用来访问单个元素,而当想要访问多个元素时,通常采用切片(slicing)的方式。使用方括号截取特定范围内的元素,这种操作就是切片。切片本质上是被冒号间隔的两个索引,用来截取从第一个索引下标到第二个索引下标之间的元素。其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内。

【例 3-2】

In[4]:	number_list = [0,1,2,3,4,5,6,7,8,9]
In[5]:	number_list[3:7]
Out[5]:	[3, 4, 5, 6]

同样的,当要从列表末尾开始访问元素时,可以使用负数索引。

【例 3-3】

In[6]:	number_list[-3:-1]
Out[6]:	[7, 8]

省略第一个索引时表示切片开始于序列开头,省略第二个索引时表示切片结束于序列末尾,而当两个索引都省略时,则选取整个序列。

【例 3-4】

In[7]:	number_list[-5:]
Out[7]:	[5, 6, 7, 8, 9]
In[8]:	number_list[:5]
Out[8]:	[0, 1, 2, 3, 4]

除此之外,在索引1和索引2之间可以设置步长来指定访问时跳跃的幅度。步长为正表示从前向后访问,步长为负表示从后向前访问。
【例 3-5】

In[9]:	number_list[1:7:2]
Out[9]:	[1, 3, 5]
In[10]:	number_list[8:2:-2]
Out[10]:	[8, 6, 4]

3)序列相加
可以使用加法运算符‘+’来拼接序列。
【例 3-6】

In[11]:	list1=[1,2,3]
list2=[4,5,6]
In[12]:	list1 + list2
Out[12]:	[1, 2, 3, 4, 5, 6]

4)乘法
在序列中,乘法用‘*’表示,当序列与数x相乘时,将重复这个序列x次来创建一个新序列。
【例 3-7】

In[13]:	[1,2] * 8
Out[13]:	[1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]

5)成员资格检查
通过使用in运算符来检查特定的值是否包含在序列中。in用来检查满足某条件的元素是否存在,如果存在,返回True;不存在,则返回False。
【例 3-8】

In[14]:	name_list = ['Tom','Jerry','Mickey','Mike']
In[15]:	'Tom' in name_list
Out[15]:	True
In[16]:	'Marry' in name_list
Out[16]:	False

2. 列表概述、常用的列表操作

列表是序列的一种,我们可以对列表执行所有的序列操作,但是不同之处在于列表是可以修改的,因此接下来会介绍一些修改列表的方法:给元素赋值、删除元素、给切片赋值以及使用列表的方法。

1)列表的修改操作
(1)给元素赋值:
给元素赋值之前,需要使用索引法找到特定位置的元素,然后使用赋值号‘=’给元素赋值。但需要注意的是,不能对超出列表长度范围的元素进行赋值。
【例 3-9】

In[17]:	lst = [1,10,20,30,40]
In[18]:	lst[3]=35
In[19]:	lst
Out[19]:	[1, 10, 20, 35, 40]
In[20]:	lst[5]=50
Out[20]:	IndexError: list assignment index out of range

**(2)删除元素:**使用下标索引并结合del语句来删除元素。
【例 3-10】

In[21]:	lst = [1,10,20,30,40]
In[22]:	del lst[3]
In[23]:	lst
Out[23]:	[1, 10, 20, 40]

**(3)使用切片可以同时对多个元素进行赋值,**甚至可以实现序列的长度改变。不仅如此,使用切片赋值还可以在不替换原有元素的情况下更新元素。
【例 3-11】

In[24]:	number_list = [1,2,3,4,5,6]
In[25]:	number_list[2:]=[20,30,40]
In[26]:	number_list
Out[26]:	[1, 2, 20, 30, 40]
In[27]:	number_list[1:1]=[5,10,15]
In[28]:	number_list
Out[28]:	[1, 5, 10, 15, 2, 20, 30, 40]
In[29]:	number_list[1:4] = []
In[30]:	number_list
Out[30]	[1, 2, 20, 30, 40]

2)列表方法

首先,我们要了解什么是方法,所谓方法(method)通常会加上对象(object)和句点来调用:object.method(arguments),方法用来实现某些功能。列表中包含一些常用的方法,可以用来查看或修改内容,下面则给出一些常用的例子来说明。

(1)append方法:使用append()函数,将某一个对象附加到列表的末尾。

【例 3-12】

In[31]:	number_list.append(50)
In[32]:	number_list
Out[32]:	[1, 2, 20, 30, 40, 50]

(2)clear方法:使用clear()函数来清空列表中的所有内容。

【例 3-13】

In[33]:	number_list.clear()
In[34]:	number_list
Out[34]:	[]

(3)copy方法:复制列表。
【例 3-14】

In[35]:	number_list = [1,2,3,4,5,6,7]
In[36]:	nl = number_list.copy()
In[37]:	number_list[3] = 40
In[38]:	number_list
Out[38]:	[1, 2, 3, 40, 5, 6, 7]
In[39]:	nl
Out[39]:	[1, 2, 3, 4, 5, 6, 7]

(4)insert方法:将一个对象插入到列表中。
【例 3-15】
In[40]: number_list.insert(2,7)

In[41]:	number_list
Out[41]:	[1, 2, 7, 3, 40, 5, 6, 7]

(5)remove方法:用于删除第一个为指定值的元素。
【例 3-16】

In[42]:	sentence = ['how','do','you','do']
In[43]:	sentence.remove('do')
In[44]:	sentence
Out[44]:	['how', 'you', 'do']

(6)count方法:统计某个元素在列表中出现的次数。
【例 3-17】

In[45]:	['to', 'be', 'or', 'not', 'to', 'be'].count('to')
Out[45]:	2

(7)extend方法:在列表末尾一次性追加另一个序列中的多个值。
【例 3-18】

In[46]:	a1 = ['a','b','c']
b1 = ['d','e','f']
In[47]:	a1.extend(b1)
In[48]:	a1
Out[48]:	['a', 'b', 'c', 'd', 'e', 'f']

(8)index方法:在列表中查找指定值第一次出现的索引。
【例 3-19】

In[49]:	sentence = ['how','do','you','do']
In[50]:	sentence.index('do')
Out[50]:	1
In[51]:	sentence.index('who')
Out[51]:	ValueError: 'who' is not in list

(9)reverse方法:对列表元素倒序排列。
【例 3-20】

In[52]:	name = ['M','i','c','k','e','y']
In[53]:	name.reverse()
In[54]:	name
Out[54]:	['y', 'e', 'k', 'c', 'i', 'M']

3. 特殊的列表–元组

元组与列表一样,也是序列一种,而区别就在元组是不能修改的。创建元组方法很简单,只要将一些值用逗号分隔,就能自动创建。
【例 3-21】

In[55]:	1,2,3
Out[55]:	(1, 2, 3)

同样的还可以用圆括号括起定义元组。
【例 3-22】

In[56]:	(1,2,3)
Out[56]:	(1, 2, 3)
当定义只包含一个值的元组时需要在它的后面加上逗号。
【例 3-23】
In[57]:	31
Out[57]:	31
In[58]:	31,
Out[58]:	(31,)
In[59]:	(31,)
Out[59]:	(31,)
元组并不太复杂,他的创建和访问与序列一致,除此之外可对元组执行的操作不多。

3.2.2 字符串
1. 字符串的概述
字符串在Python语言中很常见,它是一种最常用的数据类型。创建字符串很简单,只需要在引号(‘’或“”)内赋值一个由字符数字等组成的变量即可。例如

【例 3-24】

In[1]:	name1 = 'Kitty'
In[2]	name1
Out[2]:	'Kitty'
In[3]	name2 = "Tom"
In[4]	name2
Out[4]	'Tom'

除此之外,字符串本身也是一种序列,因此适用于序列的操作也同样适用于字符串。可以通过下标索引以及方括号截取字符串的方式访问字符串。而字符串的更新、修改删除等操作通过表格进行简单的说明。

表 3-1 字符串的基本操作
操作符 描述 实例

  • 字符串连接
In[5]:	name1+name2
Out[5]:	'KittyTom'
  • 重复输出字符串
In[6]:	name2 * 2
Out[6]:	'TomTom'

[] 通过索引获取字符串中字符

In[7]:	name2[2]
Out[7]:	'm'

[:] 截取字符串中的一部分

In[8]:	name1[2:4]
Out[8]:	'tt'

in 如果字符串中包含给定的字符返回True

In[9]:	'K' in name1
Out[9]:	True

not in 如果字符串中不包含给定的字符返回True

In[10]:	'K' not in name2
Out[10]:	True

2. 字符串用法

由于字符串很常用,因此字符串的方法也非常多,这里列一些较为常用的字符串方法来举例说明。

1)字符串方法举例:
(1)find方法:
我们使用find()函数在字符串中查找子串,如果找到,就返回子串的第一个字符的位置,未找到则返回-1。当出现返回值为0时,表明恰巧在最开始处找到了指定的子串。

【例 3-25】

In[11]:	sentence = 'Actions speak louder than words.'
In[12]	sentence.find('speak')
Out[12]:	8
In[13]	sentence.find('pick')
Out[13]	-1
In[14]	sentence.find('Actions')
Out[14]	0
同时,find方法的第二个和第三个参数分别代表搜索的起点与终点,通过起点与终点,指明了搜索范围。需要注意的是,范围包含起点但不包含终点。

【例 3-26】
In[15] sentence.find(‘s’,3,10)

Out[15]	6

(2)join方法:
join方法用于合并字符串,需要注意的是所有合并的序列元素都必须是字符串。

【例 3-27】

In[16]:	number_list = ['1','2','3','4','5']
In[17]	add = '+'
In[18]:	add.join(number_list)
Out[18]	'1+2+3+4+5'

(3)split方法:
plit是非常重要的字符串方法,它的作用与join方法相反,用于将字符串按照分隔符拆分为序列。如果没有指定分隔符,则在单个或多个连续的空白字符处进行拆分。

【例 3-28】

In[19]:	'1+2+3+4+5'.split('+')
Out[19]	['1', '2', '3', '4', '5']
In[20]:	"I am a student from BUPT".split()
Out[20]	['I', 'am', 'a', 'student', 'from', 'BUPT']

(4)strip方法:
使用strip方法将字符串开头和末尾的空白删除,并返回删除后的结果,需要注意的是strip()函数删除并不会删除字符串中间的空格。同样的,在strip()函数中指定字符则可以删除在开头或末尾的对应字符,而中间的字符不会被删掉。

【例 3-29】

In[21]:	"      I am a student from BUPT       ".strip()
Out[21]	'I am a student from BUPT'
In[22]:	'*****!!!!!Something important!!!!!*****'.strip('*!')
Out[22]	'Something important'
strip()函数在处理数据中十分常见,当进行比较或切分操作之前,通常使用strip()去掉不小心在尾部加上的空格,以免出现错误。

(5)lower方法:

用于将字符串中的大写字符全部替换为小写,当用户不想区分字符串大小写时很重要。比如用户名字、地址等信息往往大小写多样,而转换为字符串在存储与查找时,应先将他们全部处理为小写后,再进行操作。

【例 3-30】

In[23]:	'My favourite character is Mickey Mouse'.lower()
Out[23]	'my favourite character is mickey mouse'

个人公众号:yk 坤帝
后台回复 基础学习系列 获取完整源代码

以上是关于全网最全Python的基本用法,序列,列表,字符串,方法解析(案例)的主要内容,如果未能解决你的问题,请参考以下文章

2023最新整理!全网最全Python标准库总结(学习宝典,建议收藏)

python中for循环的用法

Python序列的一点用法

这份 pip 使用方法,应该算是全网最全了

Python数据结构之列表元组字典的用法

macOS上chflags用法详解(纯干货,全网最全!)