Python系列-列表&元组

 🌈个人主页: 会编程的果子君
💫个人格言:“成为自己未来的主人~”

目录

列表是什么,元组是什么

创建列表

 访问下标

切片操作

遍历列表元素

新增元素

查找元素

删除元素

连接列表

关于元组


列表是什么,元组是什么

 编程中,经常需要使用变量,来保存/表示数据

如果代码中需要表示的数据个数比较少,我们直接创建多个变量即可

num1=10
num2=20
num3=30

但是有的时候,代码中需要表示的数据特别多,甚至也不知道要表示多少个数据。这个时候,就需要用到列表。

列表是一种让程序员在代码中批量表示/保存数据的方式

元组和列表相比,是非常相似的,只是列表中放哪些元素可以修改调整,元组中放的元素是创建元组的时候就设定好的,不能修改调整

列表是散装的,元组是包装的

创建列表

创建列表主要有两种方式,[ ]表示一个空的列表

# 1
alist=[]

# 2
alist=list()
print(type(alist))

如果需要往里面设置初始值,可以直接写在[ ]里

可以直接使用 print 函数来打印 list 中的元素内容

 

alist=[1,2,3,4]
print(alist)

列表中存放的元素允许是不同的类型(这一点和C++/Java差别较大)

 

alist=[1,'a',True]
print(alist)

因为 list 本身是Python中的关键函数,不宜再使用 list 作为变量名,因此命名为alist

 访问下标

可以通过下标访问操作符[ ]来获取到列表中的任意元素

我们把[ ]中填写的数字,称为下标或者索引

alist=[1,2,3,4]
alist[2]=100
print(alist)

下标是从0开始计数的,因此下标为2,则对应着3这个元素

通过下标不光能读取元素内容,还能修改元素的值

如果下标超出列表的元素范围,就会出现异常

 

alist=[1,2,3,4]
print(alist[100])

 

如果下标是从0开始的,因此下标的有效范围是【0,列表长度-1】,使用 len 函数 可以获取到列表的元素个数

alist=[1,2,3,4]
print(len(alist))

下标可以取负数,表示倒数第几个元素

 

alist=[1,2,3,4,5]
print(alist[3])
print(alist[-1])

切片操作

通过下标操作是一次取出里面的第一个元素

通过切片,则是一次取出一组连续的元素,相当于得到一个子列表

使用 [ : ] 的方式进行切片操作

  

alist=[1,2,3,4,5]
print(alist[1:3])

 

alist[ 1 : 3 ] 中的 1 : 3 表示的是 [ 1 , 3 ) 这样的由下标构成的前闭后开区间

也就是从下标为1的元素开始(2),到下标为3的元素结束,但是不包含下标为3的元素,所以最终的结果是2,3

切片操作中可以省略前后边界

 

alist=[1,2,3,4,5]
print(alist[:3])
print(alist[1:])
print(alist[ : ])

 

切片操作还能指定“步长”,也就是“每访问一个元素后,下标自增几步”

alist=[1,2,3,4,5,6,7,8,9,10]
print(alist[::1])
print(alist[::2])
print(alist[::3])
print(alist[::5])

 

如果切片中填写的数字越界了,不会有负面效果,只会尽可能地把满足条件的元素找出来

alist=[1,2,3,4]
print(alist[100:200])

 

遍历列表元素

“遍历”指的是把元素一个一个的取出来,再分别进行处理

最简单的方法就是使用for循环

alist=[1,2,3,4]

for elem in alist:
    print(elem)

 也可以使用for 按照范围生成下标,按下标访问

alist=[1,2,3,4]

for i in range(0,len(alist)):
    print(alist[i])
    

还可以使用while循环,手动控制下标的变化

alist=[1,2,3,4]
i=0
while i<len(alist):
    print(alist[i])
    i+=1

新增元素

使用 append 方法,向列表末尾插入一个元素(尾插)

 

alist=[1,2,3,4]
alist.append('hello')
print(alist)

 

使用 insert 方法,向任意位置插入一个元素

insert第一个参数表示要插入元素的下标

 

alist=[1,2,3,4]
alist.insert(1,'hello')
print(alist)

 

什么是方法,方法其实就是函数,只不过函数是独立存在的,而方法往往要依附于某个“对象”

像上述代码alist.append append方法就必须依附于alist

查找元素

 使用 in 操作符,判定元素是否在列表中存在,返回值是布尔类型

alist=[1,2,3,4]
print(2 in alist)
print(5 in alist)

 

使用 index 方法,查找元素在列表中下标,返回值是一个整数,如果元素不存在,则会抛出异常

alist=[1,2,3,4,5]
print(alist.index(2))
print(alist.index(10))

删除元素

使用 pop 方法删除最末尾元素

alist=[1,2,3,4]
alist.pop()
print(alist)

 

pop也能按照下标来删除元素

alist=[1,2,3,4]
alist.pop(2)
print(alist)

 

使用 remove 方法,按照值删除元素

 

alist=[1,2,3,4]
alist.remove(2)
print(alist)

 

连接列表

使用 + 能够把两个列表拼接在一起

此处的 + 结果会生成一个新的列表,而不会影响到旧列表的内容

 

alist=[1,2,3,4]
blist=[5,6,7]
print(alist+blist)

 

使用 extend 方法,相当于把一个列表拼接到另一个列表的后面

a.extend(b) 是把b中的内容拼接到a的末尾,不会修改b,但是会改动a

alist=[1,2,3,4]
blist=[5,6,7]
alist.extend(blist)
print(alist)
print(blist)

 

关于元组

 元组的功能和列表相比,是基本一致的

元组使用()来表示

atuple=()
atuple=tuple()

元组不能修改里面的元素,列表则可以修改里面的元素

因此,像读操作,比如访问下标,切片,遍历,in ,index,+等,元组也是一样支持的

但是,像写操作,比如修改元素,新增元素,删除元素,extend等,元组则不能支持

另外,元组在Python中很多时候默认是集合类型,例如,当一个函数返回多个值的时候

def getpoint():
    return 10,20

result=getpoint()
print(type(result))

 

此处的result的类型,其实是元组

问题来了,既然已经有了列表,为啥还需要有元组

元组相当于列表来说,优势有两个方面:

你有一个列表,现在需要调用一个函数进行一些处理,但是你不是特别确认这个函数是否会把你的列表数据弄乱,那么这时候传一个元组就安全很多。

我们马上要讲的字典,是一个键值对结构,要求字典的键必须是“可hash对象”(字典本质上也是一个hash表),而一个可hash对象的前提就是不可变,因此元组可以作为字典的键,但是列表不行。

 

 

 

 

 

 

 

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值