1 序列列类型数据结构的特点介绍
(1)数据结构分类
Python3 中基本可以分为:
序列列类型: 字符串、列表、元组、Unicode字符串,buffer对象,range对象
泛映射类型: 字典
集合: set()
(2)序列列类型数据结构共有的特点:
序列列类型中的元素都有对应的位置,这个位置叫偏移量量或者索引
2. 列列表特性介绍和创建
(1)列表的主要特点
列表的元素可以是 Python 的任何类型的数据和对象
如:字符串、列表、元组、字典、集合、函数、类
列表内的元素是可变的。列列表中的具有相同值的元素允许出现多次
[1,2,1,1,1,1,3,3,2]
(2)创建列表
li = []
# list() 从其他类型转换
In [1]: list('hello ')
Out[1]: ['h', 'e', 'l', 'l', 'o', ' ']
# 从字符串串转换 split()
In [4]: 'www.baidu.com'.split('.')
Out[4]: ['www', 'baidu', 'com']
//转换后通常是['a','b']的形式
3 列列表的嵌套
nesting_li = [['one', 'two', 'three'],[1, 2, 3]]
4 列列表的操作
(1)支持索引
li_f =['append','insert','extend','remove','pop','index','count','sorted']
In [10]: li_f[0]
Out[10]: 'append'
(2)获取多层列列表的元素
In [19]: nesting_li = [['one', 'two','three'], [1, 2, 3]]
In [20]: nesting_li[0][1]
Out[20]: 'two'
(3)切片
li_f =['append','insert','extend','remove','pop','index','count','sorted']
[起始:终止:步长]
[:2]前2个 [2:]第三以后(包括本身) [:]所有 [::2]1.3.5.7的形式
(4)slice
even_number = slice(0,11,2)
In [91]: li[even_number]
Out[91]: [0, 2, 4, 6, 8, 10]
In [89]: reversal = slice(None,None,-1)
Out[93]: [10, 9, 8, 7, 6, 5, 4, 3, 2,
1, 0]
(5)更多方法
obj = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1,0]
in 判断元素是否存在于列列表中
len()
方法是序列类型函数,可以统计序列类型的数据结构的长度。
示例例: len(obj)
obj.append('a')追加 向列列表的最后位置, 添加一一个元素,接收一一个参数
obj.insert(0,'b')向原列表的指定位置插入一个元素,接收两个参数,第一个是索引号,第二个是要插入入的元素。原元素右移一位
obj.extend()可以把一个序列类型中的每个元素追加到原列表中
obj.remove('a')移除列表中某个指定的元素,没有返回值,并且假如有多个相同值的元素存在,每次只会移除排在最前面面的那个元素。
obj.pop()从原列表中删除一一个元素,并且把这个元素返回(返回删除那个值)。
obj.pop()的最后一一个元素,并返回
obj.index(5) 返回指定元素的索引号。
obj.count() 是列列表的内置方方法,可以统计出相同值的元素在列列表中总共出现都少次。
obj.sort()是列表的内置方法,对列表中元素进行排序。默认是升序, 这个改变列表自身。还可以接收一一个 reverse (反
转) 参数,其值可以是 True 和 False。False 是升序,True 是降序。
例如.sort(reverse=True)
sorted(li)是 python 的内置函数,接受一个参数,参数可以是任意序列类型的数据,但是元素的类型必须相同
按指定条件排序 举例如下
l5 = ['hello', 'wasdforld',
'abdadfasdfc']
# 按每个元素的长度排序
l7 = sorted(l5,key=len)
print(l7)
# 按每个元素的第2个位置的元素进行排序
l7 = sorted(l5, lamdba arg: arg[1])
print(l7)
浅拷贝 xpan = base_count.copy()
深拷⻉ xmen_new =copy.deepcopy(base_count)
5. 列列表推导式
推导试是从一个或者多个迭代器器快速简洁地创建数据结构的一一种方法
num_list = [n for n in range(1,7)]
In [4]: num_list
Out[4]: [1, 2, 3, 4, 5, 6]
# 添加有表达式的列列表推导式
In [5]: num_list = [n - 1 for n in range(1,7)]
In [6]: num_list
Out[6]: [0, 1, 2, 3, 4, 5]
#
有条件判断的一一般传统的方方法
[7]: a_list = []
[8]: for n in range(1,6):
if n % 2 == 1:
a_list.append(n)
In [9]: a_list
Out[9]: [1, 3, 5]
# 使用用有条件判断的列列表推导式
In [10]: a_list = [n for n in range(1,6) if n % 2 == 1]