全网最全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的基本用法,序列,列表,字符串,方法解析(案例)的主要内容,如果未能解决你的问题,请参考以下文章