Python中共有68种内置序列(有些内置函数也能返回一些特殊序列,可以对它进行一些通用的序列操作),其中有三种比较常见:列表,元组,字符串
- Python中大部分序列都可以进行通用操作,包括索引,切片,相同类型序列相加,乘法,成员资格,长度,最大值,最小值。
- 列表可以根据索引下标来获取元素的值
1、python文件开头utf-8格式的理解
2、程序中读取文件时utf-8格式的理解
aa.py文件代码示例:
#!/usr/bin/python
# -*- coding:utf-8 -*-
fr1 = open("goods_information", "r", encoding="utf-8")
print(fr1.read())
- 其中# – coding:utf-8 --代表Python解释器对本文件的解码格式,fr1 =open(“goods_information”, “r”,encoding=”utf-8”)中的utf-8代表读取文件进行解析时的解码格式。
即:
第二行代码中的utf-8代表对本文件aa.py的解码格式,第4行中的utf-8代表对读取文件goods_information的解码格式。
索引使用的语法:变量后面加中括号,在中括号中输入所需元素的编号
索引可以从左往右,也可以从右往左
切片操作下:
- 列表的输出元素用中括号括起来
- 元组的输出元素用小括号括起来
- 字符串不用括起来
- 切片操作需要提供两个索引作为边界,第一个索引包含在切片内部,第二个索引不包含在切片内部
- 切片中,序列的索引下标可以超出其真实的索引长度
- 所有的序列的切片都有个默认的"a"和"b",即为第一个参数和第二个参数,其中a的默认值是0,b的默认值是到该序列的最后
- 如果切片的两个索引都设置为空,则可以获取整个序列
- 切片操作中,可以通过使用第三个参数: 步长 默认情况下为1,写在两个索引参数之后(步长不支持0,否则会报错但步长支持负数)
- 正数的步长开始点必须小于结束点,负数的步长开始点必须大于结束点
序列相加
- 序列和序列之间通过加号连接连接后的结果还是相同类型的序列,列表和列表连接的结果仍然是列表,字符串和字符串连接的结果仍然是字符串。
- 不同类型的序列是不能做连接的,Python解释器只能在相同的序列之间做连接操作
- 成员资格指判断一个元素是否包含在序列中Python中使用运算符 in 来判断
- in 运算符会判断左边的元素是否报告在右边的序列中,如果包含就会返回True(真),否则就会返回False(假)
- 判断字符串序列是否包含某元素,则该元素必须是字符串
- len函数可以获取序列的长度
- min函数可以获取序列的最小值
- max函数可以获取序列的最大值
- sum函数可以对序列求和,但是sum函数求和要求序列的元素必须全部都是 int
列表
- 一个列表是可以存储不同类型的数据的,并且修改的新元素也不需要和原来的元素类型一致。但是,更新列表的索引必须是已存在的索引,不能对超出列表长度的索引更新元素
- 可以使用append函数方法在列表的最后追加新元素,但append函数每次只能新增一个元素,append无论后面是单个元素还是一个列表,都会把它当成一个新元素追加在原来的列表的后面,而extend函数则会展开,把新列表拆开追加在原来的列表后面
- insert函数需要两个参数,第一个参数表示要插入的新元素的位置,第二个参数表示要插入的新元素。insert和append一样,一次只能新增一个元素
删除
- pop函数可以删除指定位置的元素,并且把这个元素作为返回值返回,如果不指定位置则默认删除最后一个元素
- remove函数可以根据内容来对元素进行删除,会删除查找到的第一个元素,并且没有返回值
- del关键字后是指定的列表元素和索引。del不仅可以删除列表的元素,还能删除其他元素
查找
- Python提供了index方法用于查找元素在列表中的位置,但是要注意,如果元素不在列表中,Python解释器就会报错。
队列的其他操作
- reverse方法可以反转队列,和“[::-1]”有些类似,但是reverse方法修改的是原来的队列,并且没有返回值
- count方法用于统计某个元素在列表中出现的次数
- sort方法用于对列表进行排序,还可以自定义排序方式。sort会修改并对原列表排序,没有返回值。
元组
- 元组与列表十分相似,大部分方法都通用,但是元组与列表的最大区别是列表可以修改、可以读取、可以删除,而元组创建之后则不能修改,不能删除单个元素,但是可以删除整个元组。
- 如果元组只有一个元素,则这个元素后面必须要有“ ,”,否则元素就还是其原来的类型。
- 由于元组不能修改,所以元组也不能单独删除部分元素,要删除只能删除整个元组
- 元组虽然不能修改,但是列表所支持的查询方法基本上元组都支持。也正是因为元组不能被修改,所以元组的查询速度要比列表更快
- 元组支持count操作,可统计某个元素在元组中出现的次数
- 元组支持index操作,可查找元素在元组中的索引位置
字典
-
字典的元素是成对出现的,每个元素都是由 “ :”和键值对(“
:”左边的称为键或者Key,右边的称为值或者Value)构成,元素和元素之间用“ ,”分隔,整个字典用花括号“ {}
”包围。字典的键必须是唯一,不重复的,如果是空字典,则可以直接使用“ {} ”表示
在Python中,字典其实就是一组键值对。字典元素都是成对出现的,每个元素必须要有键和对应的值。访问字典跟查字典一样,需要用键去“
查找”值。
- 字典和列表一样,都是一种可修改的结构。
修改
english = {
"we":"我们",
"world":"城市",
"company":"公司",
}
print(english)
english["world"] = "世界"
print(english)
删除
english = {
"we":"我们",
"world":"城市",
"company":"公司",
}
print(english)
english["world"] = "世界"
print(english)
del english["world"]
print(english)
- clear可以用于清空字典的所有元素,使字典变成空字典,而不需要一个一个去删除。
- copy方法可返回一个具有相同键值对的新字典。使用copy对获取到的字典做修改,原始的字典不受影响。如果字典的元素值也是字典,那么copy只会影响最外层字典,元素内部还是引用
- fromkeys方法用于创建一个新字典,用序列中的元素作为字典的键,第二个参数作为所有参数对应的初始值
- get方法返回键对应的值,如果字典不存在对应的键则返回默认值(None)
- keys方法可以返回一个列表,里面包含了字典的所有键。keys方法常常用来判断一个键是否存在于字典中,可以与“ in ”操作符组合使用
-
values方法用来返回一个列表,里面包含了字典的所有值
items方法返回一个列表,里面包含了所有键的列表和所有值的列表(准确的说items返回的并不是一个list类型,只是类似)
集合(唯一性)
- 集合类似于列表,但集合不会包含重复的值
- 定义集合的时候注意:如果是空集合,必须用 set()定义;如果包含元素,可以使用花括号 {} 定义,也可以用set加上列表来定义
- 在集合中添加元素可以使用add方法
- 在集合中删除元素可以使用remove方法
Python支持三种推导式(解析式),分别对应列表,字典和集合。它能够以非常自然,简单的方式构建列表,字典或集合。
- 列表推导式的语法:用中括号括起来,中间使用for语句,后面跟着if语句用作判读,满足条件的传到for语句前面用作构建的列表
- 字典推导式定义的时候是成对生成键值对
- 集合推导式基本上和列表推导式没有什么不同,但是集合推导式会自动去除重复的元素,并且不使用中括号,使用花括号