Python进阶-01-元组&列表

来源:《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]
         输出表达式           输入序列         条件语句
                     元素变量
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值