当前位置: 首页 > news >正文

Python复习:序列(列表元组字符串)

Python复习

  • Python复习
    • 序列(列表元组字符串)
      • 列表定义
      • 列表增删改查
      • 列表的切片
      • 列表的一些常用操作符
      • 元组
      • 字符串

Python复习

序列(列表元组字符串)

列表元组字符串有一些同样的特点,所以放在一起复习。例如切片操作

列表定义

list类似于一个毫无规定的数组,可以存放任意的东西。

mix = [1,2,"student",3.14,[3,4]]

列表里可以存放的数据有很多,数字,字符串,浮点数,甚至是另一个列表

列表增删改查

列表添加数据

添加单一元素使用的是append()方法
如果想要添加几个元素可以使用extend()方法,它的本质是使用另一个列表来扩充这个列表
如果想要插入数据的话可以使用insert方法,它有两个参数,第一个是插入的位置(index)第二个是插入的元素

>>> number = [1,5,6,7]
>>> number.append(10)
>>> number
[1, 5, 6, 7, 10]>>> number.extend([15,88])
>>> number
[1, 5, 6, 7, 10, 15, 88]>>> number.insert(3,99)
>>> number
[1, 5, 6, 99, 7, 10, 15, 88]
>>> 

有一些类似于C++中类方法的使用,他们都是对number这个列表进行操作

从列表获取元素

类似于数组,我们是可以直接通过索引值去获取列表中的元素的
列表的索引值也是从0开始
我们也可以通过len()函数来获取列表的长度

>>> number
[1, 5, 6, 99, 7, 10, 15, 88]
>>> len(number)
8>>> number[len(number)-1]
88>>> number.extend([[8,8],[9,9]])
>>> len(number)
10>>> number[-1]
[9, 9]>>> number
[1, 5, 6, 99, 7, 10, 15, 88, [8, 8], [9, 9]]

同时我们也可以看出来,在列表的长度是每个元素加起来的数量,如果有列表元素,只当作为一个
还有我们可以使用负的索引值去寻找元素,列表的最后一个元素的索引值为-1,以此类推。

列表中更改元素

如果想将列表中的两个值交换我们不需要像C++等一样引入第三变量而是可以使用python的a,b=b,a这个语法进行交换

>>> a=3
>>> b=4
>>> a,b=b,a
>>> a
4
>>> b
3
>>> number
[1, 5, 6, 99, 7, 10, 15, 88, [8, 8], [9, 9]]
>>> number[1],number[9]=number[9],number[1]
>>> number
[1, [9, 9], 6, 99, 7, 10, 15, 88, [8, 8], 5]

这个语法看起来比较奇怪,资料显示:
x1,x2 = x2,x1的含义是: a = x2 b = x1 x1 = a x2 = b
大概的意思是引入了两个中间变量用于交换数值

从列表中删除数据

从列表中删除数据我们一般使用三种方法:remove(),pop(),del

remove()方法是指定一个元素删除,不需要知道位置,但是要知道具体的元素是什么,删除一个列表不存在的元素会报错

pop()方法是删除指定位置的元素,可以不知道元素到底是什么,如果没有给出index参数默认会删除最后一个元素

del方法不是一个列表方法,或者BIF,而是一个python语句有一些类似于C++中的清除内存的语句,我们使用del不但可以删除元素,也可以直接删除变量或者列表

>>> number
[1, [9, 9], 6, 99, 7, 10, 15, 88, [8, 8], 5]
>>> number.remove(1)
>>> number
[[9, 9], 6, 99, 7, 10, 15, 88, [8, 8], 5]>>> number.pop(len(number)-2)
[8, 8]
>>> number
[[9, 9], 6, 99, 7, 10, 15, 88, 5]
>>> number.pop()
5
>>> number
[[9, 9], 6, 99, 7, 10, 15, 88]>>> del number[3]
>>> number
[[9, 9], 6, 99, 10, 15, 88]
>>> del number
>>> numberTraceback (most recent call last):File "<pyshell#36>", line 1, in <module>number
NameError: name 'number' is not defined

之所以报错就是是因为我们使用del删除了number列表,我们再去获取number列表系统就会告诉我们这个变量并不存在

列表的切片

切片(slice)是python非常独特的一个属性,切片在本质上并不会修改我们所操作的列表本身,而是为这个列表创建了一个新的拷贝对象返回。

>>> number =[1,2,3,4,5,6,7,8,9,10]
>>> number[2:5]
[3, 4, 5]
>>> number[:2]
[1, 2]
>>> number[3:]
[4, 5, 6, 7, 8, 9, 10]
>>> number[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

除了以上的使用方法,我们的切片还可以接受第三个参数,代表的是步长

>>> number[1:9:2]
[2, 4, 6, 8]
>>> number[::2]
[1, 3, 5, 7, 9]>>> number[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]>>> del number[::2]
>>> number
[2, 4, 6, 8, 10]

值得我们注意的是我们的步长可以设置为-1,-2等数字进行反向的元素提取。

列表的一些常用操作符

在列表中我们之前学过的很多操作符都可以仍然使用

>>> list1 = [123]
>>> list2 = [234]
>>> list2 > list1
True
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 > list2
False
>>> list1 + list2
[123, 456, 234, 123]
>>> list3 = 3*(list1+list2)
>>> list3
[123, 456, 234, 123, 123, 456, 234, 123, 123, 456, 234, 123]

通过代码我们课可以分析得出,列表比较大小是只会比较第一个元素的,同时列表也可以使用+,*等操作(有一些类似于C++的运算符重载)

>>> 123 in list3
True
>>> 777 in list3
False
>>> 123 not in list3
False
>>> 777 not in list3
True
>>> number = [1,2,[3,4]]
>>> 1 in number
True
>>> 3 in number
False
>>> [3,4] in number
True
>>> 

还有我在python中学到的in,not in的两个成员关系操作符,通过上面的代码我们可以看出,in和not in两个算符只能判断一个层次的成员关系。如同break和continue一样,只可以跳出一层的循环。

同时还有一些常用的列表方法

count()方法的作用是统计某一个元素出现的次数

index()方法的作用是返回某一个元素第一次出现时的索引值,不设置起始结束参数的话默认搜索整个列表

reverse()方法的作用是将整个列表反转

sort()的作用是对列表的元素进行排序

>>> number
[1, 2, [3, 4], 12, 2, 1, 2, 3, 2, 1]
>>> number.count(1)
3>>> number.index(2,0,5)
1>>> number.reverse()
>>> number
[1, 2, 3, 2, 1, 2, 12, [3, 4], 2, 1]>>> number.remove([3,4])
>>> number.sort()
>>> number
[1, 1, 1, 2, 2, 2, 2, 3, 12]

元组

元组(tuple)跟列表是比较像的,他们之间最大的区别就是元组只可读不可写。也就是说元组不能进行增删改,只可以查。

除了这个特征以外,我们在创建元组的时候一般是使用小括号(),而不是中括号[]符号。

元组的建立

>>> tuple1 = (1,2,3,4)
>>> tuple1
(1, 2, 3, 4)
>>> type(tuple1)
<class 'tuple'>

我们在查询元组的元素的时候还是要按照tuple1[a]的方式来寻找,不要误写成tuple(1)

复制一个元组可以通过切片操作:tuple2 = tuple1[:]或者tuple2 = tuple 1

如果你想更改数组,系统就会报错.

注意

元组的标识符其实是,
也就是说我们可以不使用小括号也是可以创建元组的
tuple1 = 1,2,3,4同样是成立的

更新和删除元组

元组虽然不能被修改但是我们可以通过切片复制的操作创建一个新的同名元组,这样就可以更新元组了。

>>> number = 1,2,3,4,5,6
>>> number
(1, 2, 3, 4, 5, 6)>>> number = (number[1],9)+number[2:]
>>> number
(2, 9, 3, 4, 5, 6)
>>> del number

上面的代码就是利用代码的相加创建了一个新的同名数组。同样的,del语句可以将元组删除。

字符串

字符串和元组一样都是只能够查不能修改的,如果非要修改,还是像上文一样使用切片等操作进行。同时那些字符串修改的参数都不是对原字符串的修改,而是返回一个字符串修改后的拷贝。

>>> str1 = "武汉理工大学理学院"
>>> str1.count('理')
2
>>> str1.find('理工')
2>>> str1.replace("理学院","光信科")
'武汉理工大学光信科'
>>> str1.split()
['武汉理工大学理学院']>>> str2 = "武汉","理工","大学"
>>> "-".join(str2)
'武汉-理工-大学'
>>> "".join(str2)
'武汉理工大学'

字符串可以进行一些格式化操作

http://www.lryc.cn/news/226501.html

相关文章:

  • DevChat助力成为软件开发的“钢铁侠”
  • c: struct sort descending and ascending in windows and Ubuntu
  • Python - 利用 OCR 技术提取视频台词、字幕
  • VUE页面导出PDF方案
  • 机器学习笔记 - WGAN生成对抗网络概述和示例
  • HoudiniVex笔记_P0_Houdini中文文档与翻译
  • 基于PowerWord的储能在主动配电网中的仿真研究
  • 并查集与最小生成树
  • 平面运动机器人的传感器外参标定
  • 【星海随笔】SDN neutron (二) Neutron-plugin(ML2)
  • 野火i.MX6ULL开发板检测按键evtest(Linux应用开发)
  • k8s存储
  • 数据分析实战 | 贝叶斯分类算法——病例自动诊断分析
  • 实用技巧:嵌入式人员使用http服务模拟工具模拟http服务器测试客户端get和post请求
  • P9836 种树
  • C# 查询腾讯云直播流是否存在的API实现
  • JAVA开源项目 于道前端项目 启动步骤参考
  • 深入理解ElasticSearch分片
  • 【Python】AppUI自动化—appium自动化元素定位、元素事件操作(17)下
  • SpringBoot使用MyBatis多数据源
  • 小程序版本审核未通过,需在开发者后台「版本管理—提交审核——小程序订单中心path」设置订单中心页path,请设置后再提交代码审核
  • Netty入门指南之NIO Selector监管
  • Spring Cloud学习(六)【统一网关 Gateway】
  • 基于单片机的空调智能控制器的设计
  • Spring Boot自动配置原理、实战、手撕自动装配源码
  • 111111111111111
  • React动态生成二维码和毫米(mm)单位转像素(px)单位
  • SpringMvc 常见面试题
  • jmeter接口自动化测试工具在企业开展实际的操作
  • 第17章 反射机制