序列是可以存放多个值的连续内存空间,按照一定顺序排列,通过每个值所在位置编号(称为索引)访问它们
序列类型包括字符串、列表、元组、集合和字典
列表list[]
特征
列表用[]来表示,可以存放同一类型或多个不同类型的元素,每组数据都要用逗号隔开
a =['我', '爱', '小', '玉', '呀']
print(type(a))
print(a)
<class 'list'>
['我', '爱', '小', '玉', '呀']
增删改查
增
append # 它只能在列表尾部添加数据,只要是指定的类型数据都能添加进去 重点
a = ['爱', 'xiao', '玉']
a.append('呀') a.append(['呀'])----------# 在append()添加一个列表之后不会再生成一个新列表
print(a) print(a)
['爱', 'xiao', '玉', '呀'] ['爱', 'xiao', '玉', '[呀]']
insert(插入)下标,元素
a = ['xiao', 'yu'] # 它可以在你指定位置添加数据类型,不会覆盖原来的数据,原来位置的数据会向后移一位。
a.insert(0, 'I love you')
print(a)
['I love you', 'xiao', 'yu']
extend()
a = ['wo', 'ai']
a.extend('小玉') # 这里是将字符串拆分后,在尾部逐一进行添加进去;
print(a)
['wo', 'ai', '小', '玉']
a = ['wo', 'ai']
a.extend(['xiao', 'yu']) # 这里是指用list[列表]分层来抵消extend的拆分之后在尾部添加进去。
print(a)
['wo', 'ai', 'xiao', 'yu']
删# 重点
pop #通过索引下标进行删除.不下标时默认删除最后一个数据
b = ['love', 'yu', 'y']
b.pop() b.pop(2)
print(b) print(b)
['love', 'yu'] ['love', 'yu']
remove # 是用来删除已知数据的,如果存在多个相同的数据时,只会删除最前面相同的数据
c = ['i', 'love', 'xiao', 'yu', 'i']
c.remove('i')
print(c)
['love', 'xiao', 'yu', 'i']
clear #它会清空列表里面的全部数据-----(重点记)
d = ['xiao', 'yu', 'i', 'love', 'you']
d.clear()
print(d)
[]
del #注意用del的时候后面不能单一跟变量名,否则它会把你的变量名删除,运行就报错。del是通过索引下标来进行删除的,也可以指定范围删除.
a1 = ['i', 'x', 'y']
del a1[1] del a1[1::2]
print(a1) print(a1)
['i', 'y'] ['i', 'y']
改 # 通过索引下标之后,对索引取值部分进行重新赋值就能达到修改的效果。
a2 =['i', 'x', 'y', 'y']
a2[1:] = ['xiao','yu']
print(a2)
['i', 'xiao', 'yu']
查
index
b1 = ['w', 'i', 'x', 'y']
b2 = b1.index('y') # 通过索引下标来查元素的位置
print(b2) print(b2.index('i'))
3 1
b1 = ['w', 'i', 'x', 'y']
b2 = bi.index('x', 1, 3) # 也可以通过索引下标来指定范围查找元素位置,但是在指定范围找不到就会报错。
print(b2) print(b2.index('w', 1, 3))
2 ValueError: 'w' is not in list(异常:'w'不在list中)
count # 查找元素出现的次数
c1 = ['x', 'y', 'w', 'i', 'n', 'w', 'i', 'x', 'y']
c2 = c1.count('y')
print(c2)
2
索引查询 # 通过索引来查询列表里位置的对应数据
d1 = ['x', 'y', 'w', 'i', 'n', 'w', 'i', 'x', 'y']
print(d1[0:8])
['x', 'y', 'w', 'i', 'n', 'w', 'i', 'x']
扩展
copy() #复制序列
b = ['a', 'b', 'c']
c = b.copy() #copy之后值一样,但内存地址不一样
print(b)
print(c)
reverse #倒序
index_1 = ['y', 'x', 'i', 'w', 'n', 'i', 'w', 'y', 'x'] #它会改变了列表本身
index_1.reverse()
print(index_1)
['x', 'y', 'w', 'i', 'n', 'w', 'i', 'x', 'y']
sort #正向排序
reverse_1 = ['y', 'x', '2'] # 它也会改变列表本身
reverse_1.sort() # 注意:数值类型(int和float)和str(字符串)进行排序时数值类型要转换成字符串 才不会报错。
print(reverse_1)
reverse_1.sort(reverse = True)
print(reverse_1)
['y', 'x', '2'] #这里指排序之后再用reverse=True进行倒序了
copy #复制列表
sort_1 = ['x', 'y', 'w', 'i','you']
count_1 = sort_1.copy()
cout_1.copy()
print(count_1)
['x', 'y', 'w', 'i', 'you']
元组()tuple
元组里面包括的数据要加逗号(,),当()里只有一个元素,元素后面没有跟逗号,不是元组
index_1 =('y') index_1 = ('y',) #type(查看数据类型)
print(type('index_1')) print(type('index_1')) #str(字符串)
str tuple
只能被查,用index查看下标(和常规查法一样),count查看次数
sort_1 = ('i', 'x', 'y')
print(sort_1.index('y'))
2
元组不能被增删改,但可以用转类型方法进行修改
转list列表
sort_1 = ('i', 'x', 'y', 'i')
print(sort_1.index('i', 1))
reverse_1 = list(sort_1)
['i', 'x', 'y', 'i']
转str字符串
sort_1 = ('i', 'x', 'y', 'i')
print(sort_1.index('i', 1))
reverse_1 = str(sort_1)
print(reverse_1)
转bool布尔值
append_1 = ('xiao', 'yu', 'wo', 'i', 'you')
extend_1 = bool(append_1)
print(extend_1)
True
转类型
int(整数)能转换的类型有
bool布尔值
join_1 = 12345
print(bool(join_1)))
True
列表
print(list(str(a)))
['1', '2', '3', '4', '5', '6']
元组
print(tuple(str(join_1)))
('1', '2', '3', '4', '5')
字符串str能转的类型有
list(列表)
join_1 = '12345'
print(list(join_1))
['w', 'i', 'x', 'y']
tuple元组
join_1 = '12345'
print(tuple(join_1))
('w', 'i', 'x', 'y')
bool布尔值
join_1 = '12345'
print(bool(join_1))
True
int整数 #只有在''字符串内是int整数且不能它们之间不能包含有任何符号时才能转换,否则报错。
join_1 = '12345'
print(int(join_1))
12345
列表list能转换的类型有
tuple元组
clear_1 = ['i', 'love', 'xiao', 'yu']
print(tuple(clear_1))
('i', 'love', 'xiao', 'yu')
bool布尔值
clear_1 = ['i', 'love', 'xiao', 'yu']
print(bool(clear_1))
True
tuple元组能转换的类型有
list列表
append_1 = ('xiao', 'yu', 'wo', 'i', 'you')
print(list(append_1))
['xiao', 'yu', 'wo', 'i', 'you']
append_1 = ('xiao', 'yu', 'wo', 'i', 'you')
print(bool(append_1))
True
bool布尔值能转换的类型有
int整数
insert_1 = False
pop_1 = int(insert_1)
print(pop_1)
0