python基础(03列表和元组)

python基础(03列表和元组)

python基础(01变量&数据类型&运算符)
python基础(02序列共性)



前言

持续学习


一、列表list

1.特点

● [ ]包围
● ","隔开
● 可变序列

2.如何生成列表

(1) list()函数生成

  • 只能定义一个变量
  • int类型不可迭代不能用,暂时理解只能用字符串
  • list只能用字符串
list('abc')
['a', 'b', 'c']

(2) 由[ ]直接定义产生

print [1,2,3,4,'a']
[1, 2, 3, 4,'a']

3.操作:增删改查

改:

(1) 单个修改:直接修改索引的值

a=[1,2,3]
a[1] = 5
print(a)
--------------->
[1,5,3]

(2) 批量修改:切片赋值-替换

>>> name = list('Perl')
>>> name
['P', 'e', 'r', 'l']
>>> name[1:] = list('ython')
>>> name
['P', 'y', 't', 'h', 'o', 'n'] //替换长度不同的值也是可以的

删:

(1) del删除

del a[2]

(2)切片赋值插入一个空列表-替换

>>>num=[1,2,3]
>>> nums[::] = []
>>> nums
[]

增:

(1)切片插入-某个索引插入多个元素

nums = [2,3]---->[2,x,3]
nums[1:1] = [4,5,6]
print(nums) //[2, 4, 5, 6, 3]

4.方法:增删改查

增:

(1) append()增加单个

末尾增加新对象:单个
print(b)-->none

修改原数组
a=[1,2]
b=a.append(3)
print(b)
print(a)
--------------------
None         //b接收的是返回值
[1, 2, 3]   //修改了原数组

(2) extend()增加多个

末尾一次性追加另一个序列的多个值(可切片获取)
返回none
修改原数组
也可a+b实现,但是a+b会生成新列表
>>> a =[1,2,3]
>>> b= [4,5,6]
>>> a.extend(b) //返回值none
>>> a
[1, 2, 3, 4, 5, 6]

(2) insert()插入指定位置

将对象插入指定位置
返回none
修改原表
初级用法,一个索引添加一个元素,多个索引,多个元素报错,不适合大量元素操作

>>> nums = [1,2,3,4,5]
>>> a = nums.insert(3,'zhang')
>>> print(a)
None
>>> nums
[1, 2, 3, 'zhang', 4, 5]

改:

(1)reverse()

反向存放:a.reverse()
返回none
修改原表
>>> x = [1,2,3]
>>> print(x.reverse())
None
>>> x
[3, 2, 1]

删:

(1)pop()

1.指定索引,移除索引位置元素,不指定索引,默认移除最后一个元素
2.返回该元素的值
3.修改原表
 a=[1,2,3]
 b=a.pop(0)
 print(a,b)
--------------
[2, 3] 1

(2)remove()

1.用于移除列表中第一个匹配项(元素)
2.返回none
3.修改原表
4.没有匹配报错
>>> x = ['to', 'be','or', 'not','to','be']
>>> x.remove('be')
>>> x
['to', 'or','not', 'to', 'be']

查:

(1)count()

1.统计某个元素在列表中出现的次数
2.不存在返回0
3.嵌套的列表整体算一个元素
>>> x = [[1,2],1,3,1,2]
>>> x.count(1)
2
>>> x.count([1,2])
1
>>> x.count(5)
0

(2)index()


1.从列表中找到某个值第一个匹配项的索引位置
2.返回匹配项的索引
3.找不到报错
>>> a = ['we','are','yong']
>>> a.index('are')
1

4.可以指定范围查找:查找的元素不在此范围报错
reuslt = a.index('b',2) #起始索引位置,结束索引省略
print(reuslt)----->报错
reuslt = a.index('a',1,4)  #起始和结束索引位置
print(reuslt)------>报错

复制:

(1)浅拷贝:copy()


1.b复制a的列表,两个列表的对象地址不一样
2.a的改变对b不影响(第一层)
3.a的改变对b影响(第二层)
a=[[1,2,3],4,5,6]
b=a.copy()
a[0][0]=9
a[3]=10
print(a,b)
------->
[[9, 2, 3], 4, 5, 10] 

[[9, 2, 3], 4, 5, 6]

(2)深拷贝:deepcopy()

1.导入方法:from copy import deepcopy
2.深拷贝 ,a的改变对b不影响(第二层)
from copy import deepcopy
a=[[1,2,3],4,5,6]
b=deepcopy(a)
a[0][0]=9
a[3]=10
print(a,b)
-------------->
[[9, 2, 3], 4, 5, 10] 

[[1, 2, 3], 4, 5, 6]

排序:

(1)sort()

1.排序,升序
2.返回none
3.修改原表
>>> x = [2,1,4,7,5]
>>> x.sort()
>>> x
[1, 2, 4, 5, 7]

二、元组tuple

1.特点

● 序列的一种,元素逗号隔开,()包围
● 不能修改,不可变序列
● 和列表相似(定义方法)

2.如何生成元组

(1)直接由()产生

type((1,2,3))
<class 'tuple'>

1.只有1个元素:a=(1,)
2.不加,是int类型

(2),隔开

>>> a = 1,2,3
>>> type(a)
<class 'tuple'>

ps:只有1个元素:a=1,

(3)tuple()函数

>>> tuple('abc')
('a', 'b', 'c')

3.操作

索引、分片(结果还是元组类型)

4.方法

与列表相似。改变列表的方法不适用,元组不支持修改,使用会报错

总结

理解即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值