来源:《Python从小白到大牛》关东升
数据结构常见的有数组(Array)、集合(Set)、列表(List)、队列(Queue)、链表(Linkedlist)、树(Tree)、
堆(Heap)、栈(Stack)和字典(Dictionary)等结构。
Python中结构主要有序列、集合和字典。
注意:Python中并没有数组结构,因为数组要求元素类型是一致的。而Python作为动态类型语言,不强制声明变量的数据类型,也不强制
检查元素的数据类型,不能保证元素的数据类型一致,所以Python中没有数组结构。
1、元组
元组是一种序列结构。
1.1序列
序列是一种可迭代的、元素有序的、可以重复出现的数据结构。序列可以通过索引访问元素。
序列包括的结构有列表(list)、字符串(str)、元组、范围(range)和字节序列(bytes)。序列可进行的操作有索引、分片、加和乘。
1)索引操作
序列中第一个元素的索引是0,其他元素的索引是第一个元素的偏移量。可以有正偏移量;也可以有负偏移量,称为负值索引。正值索引的最后一个
元素索引是“序列长度-1”,负值索引最后一个元素索引是“-1”。
序列中的元素是通过索引小标访问的,即中括号[index]方式访问。
索引超出范围会发生IndexError错误。获取序列的长度使用函数len,类似的序列还有max和min函数,max函数返回最后一个元素,min函数
返回第一个函数。
2)序列的加和乘
+运算符可以将两个序列连接起来,* 可以将序列重复多次。
3)序列分片
序列的分片就是从序列中切分出小的子序列。分片使用分片运算符,分片运算符有两种形式。
[start:end]:start 是开始索引,end是结束索引。
[start : end : step]:start是开始索引,end是结束索引,step是步长,步长是在分开时获取元素的间隔。步长可以为正整数,也可以为负整数。
注意:切下的分片包括start位置元素,但不包括end位置元素,start和end都可以省略。
1.2创建元组
元组是一种不可变序列,一旦创建就不能修改。创建元组可以使用tuple([iterable])函数或者直接用逗号“,”将元素分隔。
Python中没有强制声明数据类型,因为元组中的元素可以是任何数据类型。
另外,元组还可以通过tuple([iterable])函数创建,参数iterable可以是任何可迭代对象。
1.3访问元组
元组作为序列可以通过下标索引访问其中的元素,也可以对其他进行分片。
元组还可以进行拆包(Unpack)操作,就是将元组的元素取出赋值给不同变量。
1.4遍历元组
一般使用for循环遍历元组。一般情况下遍历目的只有取出每一个元素值,但有时需要在遍历过程中同时获取索引。
注意:本节介绍的元组遍历方式适合于所有序列,如字符串、范围和列表等。
2、列表
列表(list)也是一种序列结构,与元组不同,列表具有可变性,可以追加、插入、删除和替换列表中的元素。
2.1列表创建
创建列表可以使用list([iterable])函数,或者用中括号[]将元素括起来,元素之间用逗号分隔。
列表中的括号不能省略,如果省略了中括号那就变成了元组。创建空列表是[]表达式。列表中可以放入任何对象。
无论是元组还是列表,每个元素后面都跟着一个逗号,只是最后一个元素的逗号经常是省略的。
2.2追加元素
列表中追加单个元素可以使用append()方法。如果想追加另一列表,可以使用 + 运算符或extend()方法。
append()方法语法:
list.append(x)
其中 x 参数是要追加的单个元素值。
extend()方法语法:
list.extend(t)
其中 t 参数是要追加的另外一个列表。
2.3插入元素
插入元素可以使用列表insert()方法,该方法可以在指定索引位置插入一个元素。
insert()方法语法:
list.insert(i,x)
其中参数 i 是要插入的索引,参数 x 是要插入的元素数值。
2.4替换元素
列表具有可变性,其中的元素替换很简单,通过列表下标将索引元素放在赋值符号“=”左边,进行赋值即可替换。
2.5删除元素
列表中实现删除元素有两种方法,一种是使用列表的remove()方法,另一种是使用列表的pop()列表。
1)remove()方法
remove()方法从左到右查找列表中的元素,如果找到匹配元素则删除,注意如果找到多个匹配元素,只是删除第一个,
如果没有找到则会抛出错误
list.remove(x)
2)pop()方法
pop()方法也会删除列表中的元素,但它会将成功删除的元素返回。
list.pop([i])
参数 i 是指定删除元素的索引,i 可以省略,表示删除最后一个元素。返回值item是删除的元素。
2.6其他常用方法
reverse() 倒置列表
copy() 复制列表
clear() 清除列表中的所有元素
inedx(x[,i[,j]]) 返回查找 x 第一次出现的索引,i 是开始查找索引,j是结束查找索引,该方法继承自序列,元组和字符串
也可以使用该方法。
count(x) 返回 x 出现的次数,该方法继承自序列,元组和字符串也可以使用该方法。
2.7列表推导式
Python中有一种特殊表达式——推导式,它可以将一种数据结构作为输入,经过过滤、计算等处理,最后输出另一种数据结构。根据数据
结构的不同可分为列表推导式、集合推导式和字典推导式。
列表推导式:
n_list = [x**2 for x in range(10) if x % 2 ==0]
输出表达式 输入序列 条件语句
元素变量
1万+

被折叠的 条评论
为什么被折叠?



