python 51~
列表:列表是数据容器中的一类,是一次性可以存储多个数据(元素)的。
定义:列表名称=[元素1,元素2,元素3,元素4,元素5 ]
特点:
•可以存储不同类型的元素
•元素有序、可以重复、元素可以修改
序列类型:容器中的元素按特定顺序排列的、可通过索引访问的容器类型称之为序列。
注意:从前向后(正向索引),下标从0开始;从后向前(反向索引),下标从-1开始。
列表可以嵌套
列表-切片:
语法:序列数据[开始索引:结束索引:步长]
不包含结束索引位置对应的元素(开始索引未指定默认为0;结束索引未指定默认为列表长度(直到列表末尾);步长未指定默认为1)
双层嵌套列表索引就要多个[ ] 如 list[1][2]
•索引采用正向、反向索引都可以
•步长是选取间隔,默认步长为1
举例:
s[0:5:1]切片后的结果为["A", "C", "E", "B", "D"]
S[0:5:2]切片后的结果为["A", "E", "D"]
查找某元素的下标
语法:列表.index(元素)
快捷操作:确定某个元素在列表内
元素in列表变量 返回值是true和false
列表修改:
语法:列表[下标]=值
列表的常见方法:
追加元素方式2:
语法:列表.extend(其他数据容器) 追加到列表尾部
删除元素方式2:
语法:del列表[下标] 与pop()的区别是pop有返回值,返回被删除的元素
清空列表内容:
语法:列表.clear() 或者 列表=[ ]
统计某元素在列表中的数量
语法:列表.count(元素)
统计列表共有多少元素:
语法:len(列表)
元组:元组是不可变的序列,类似于列表,但创建后不能修改
可以存储不同类型的元素(列表也可以) 元组类型是tuple
元素可以重复、有序、不可以修改(支持索引访问、切片)
count():统计某元素在元组中出现的次数
index():查找某个元素在元组中的索引位置(第一次出现的位置)
定义一个元素的元组,后面必须加逗号,否则不是元组类型
元组也可以嵌套与列表类似,也是通过下标索引
字符串:
介绍:字符串是字符的容器,一个字符串中可以存放任意数量的字符。如:"Python"'Python'"""Python"""
特点:不可变性(无法修改)、有序性、可迭代性。
字符串中的每一个字符元素都有其对应的下标(索引),通过元素对应的索引,就可以获取到对应的元素。
支持切片 序列对象[开始索引:结束索引:步长]
字符串中常用方法:
其中 元组名.replace("旧字符",“新字符”)
元组名.split(“指定分隔符”) 可以分割成多个元素存入新的列表
统计字符串长度:len(字符串)
序列都支持切片:
语法: 序列[开始索引:结束索引:步长]
集合(set)是一种无序的、不可重复、可修改的数据容器。会自动去重
下标访问无法使用(因为集合是无序的)
补充:消除两个集合的差集 语法: 集合1.difference_update(集合2)
在集合1中删去和集合2相同的元素 结果集合1被修改,集合2不变
集合支持for循环遍历,但不支持while循环
字典:使用键值对(key:value)来存储数据,每一个键都对应一个值,通过键(key)可以快速找到对应的值(value)。
特点:键值对(key:value)存储、键(key)不能重复、可修改。重复的后面的覆盖前面的
注意:字典(dict)中的value可以是任何类型的数据,而key不能为可变类型(如:不能为 列表list、集合set、字典dict)。
字典可以嵌套,能记录更多信息
字典名.clear( )可以清空字典 同样给字典赋值空字典也可以
数据容器都可以用循环遍历通用统计功能有len(容器);max(容器);min(容器)
通用排序功能sorted(容器,reverse=True(升序)/False(降序))
字符串按照逐位比较 如果第一位大就不再比
函数参数种类:
1.位置参数:调用函数时根据函数定义时的位置来传递参数。
2.关键字参数:调用函数时以函数定义时形参名称作为关键字,以"键=值"的形式来传递参数(不要求顺序)。
3.默认参数也称为缺省参数,用于在定义函数时,为参数提供默认值,调用函数时,可以不传递有默认值的参数。
注意:默认参数必须放在没有默认值的参数列表的后面,一个函数在定义时是可以设置多个默认参数的。
注意:函数调用时,如果为默认参数传递了值,则会修改默认的参数值;如果没有传递该参数,则直接使用默认值。
不定长参数也叫可变参数,用于函数定义及调用时参数个数不确定(0个或多个)的场景。
*是不定长参数的标记,表示收集全部参数到元组中
**标记代表关键字传递接收键值对组成字典
类型:
位置传递
关键字传递
注意:传递的所有匹配的位置参数都会被args变量收集,这些参数会合并封装为一个元组,args是元组类型(注意并不会封装关键字参数)。
注意:args只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量名(如*data)。
结合使用:(注意顺序,以及关键字)
函数也可以作为参数被传入(作用:传入的是计算逻辑,而非传入数据)
匿名函数指的是没有名称的函数,需要通过lambda表达式来声明函数,可以简化简单函数的编写(单行表达式)
注意:无名称的匿名函数只可以使用一次
注意:函数逻辑比较简单(单行表达式)且只在一个地方使用时,可以考虑使用匿名函数,简化书写(通常作为高阶函数的参数使用)。
注意:匿名函数中可以返回结果,也可以不返回结果。返回结果时,不需要写return,表达式的运行结果就是要返回的结果。
实际演示:
文件操作
打开、关闭、读、写
在python中使用open打开文件,可以打开一个已有的文件或者创建一个新的文件,语法:
open(name,mode,encoding)
name是要打开的目标文件名的字符串(可以包含文件所在路径)
mode设置打开模式:只读、写入、追加
encoding编码模式(一般utf-8)
mode三种模式
r只读方式打开。文件的指针将会放在文件的开头。(默认模式)
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从头开始编写,原有内容会被删除。如果文件不存在,则会创建新文件。
a打开一个文件用于追加。如果该文件已存在,新的内容将会写到已有文件后,如果该文件不存在,则创建一个新文件进行导入
b二进制处理
只有文本文件可以使用r、w、a
文件对象.read(num) num表示要从文件中读取的长度单位是字节,没有传默认是全部
readlines()方法 : 把整个文件一次性读取并返回一个列表,每一行代表一个元素
readline(): 一次读一行
.strip()可以去除\n
.split("内容") 分隔符,以内容进行分割
读操作第二种写法
with open语法
with open("文件名或路径",“r”) as f:
f.readlines()
f是变量名 可以在操作后自动关闭文件避免遗忘
两种统计打开文件中出现相同词的个数:
文件的写入:文件名.write("内容")
内容刷新:文件名.flush() (close之前会自动fush)
使用w模式会将原有文件内容清空
文件的追加(a模式):
文件不存在会创建新的文件
文件存在会在最后追加写入
以二进制模式读写追加是rb、rw、ra