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.方法
与列表相似。改变列表的方法不适用,元组不支持修改,使用会报错
总结
理解即可