数据结构(Python)

● 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解释器就会报错。

● 队列的其他操作

  1. reverse方法可以反转队列,和“[::-1]”有些类似,但是reverse方法修改的是原来的队列,并且没有返回值
  2. count方法用于统计某个元素在列表中出现的次数
  3. 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方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章