一、前言
本文主要记录了Python学习过程中,基本数据类型列表list、元组tuple的操作
二、列表list
主要包括增、删、改、查的一些方法
增
append()在尾部进行追加元素
l = [1, 2, (2, 3, 4), 5, 7, 8]
l.append(4)
输出结果
[1, 2, (2, 3, 4), 5, 7, 8, 4]
insert()在具体位置插入元素
l = [1, 2, (2, 3, 4), 5, 7, 8]
l.insert(1, '葫芦')
输出结果
[1, '葫芦', 2, (2, 3, 4), 5, 7, 8]
extend()在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
l = [1, 2, (2, 3, 4), 5, 7, 8]
l.extend('abc')
print(l)
输出结果
[1, 2, (2, 3, 4), 5, 7, 8, 'a', 'b', 'c']
删
l.remove()
l.pop()
l.clear()
del
pop()按索引删除 pop返回删除的元素
l = ['allen', 'alex', 'Wusir']
res = l.pop(1)
print(res)
输出结果
alex
remove()按元素删除 返回删除后的列表
l = ['allen', 'alex', 'Wusir']
res = l.remove('allen')
print(res)
输出结果
['alex', 'Wusir']
clear() 清空列表,列表还在
l = ['allen', 'alex', 'Wusir']
l.clear()
输出结果
[]
del 删除列表,列表不在
直接删除
l = [1, 2, 3, 4, 5]
del l
print(l)
NameError: name 'l' is not defined
按照索引删除
l = [1, 2, 3, 4, 5]
del l[2]
print(l)
[1, 2, 4, 5]
nait
按照切片删除
l = [1, 2, 3, 4, 5]
del l[1:4]
print(l)
[1]
改
按索引改
l = [1, 2, 3, 4, 5]
l[0]='alex'
print(l)
['alex', 2, 3, 4, 5]
按切片改
l = [1, 2, 3, 4, 5]
l[:3]='allen'
print(l)
结果:['a', 'l', 'l', 'e', 'n', 4, 5]
l = [1, 2, 3, 4, 5]
l[1:4] = ['a', '中国', '']
print(l)
结果:[1, 'a', '中国', '', 5]
l = [1, 2, 3, 4, 5]
l[1:4:2] = ['a', '中国', '']
print(l)
结果:['a', 2, 'b', 4, 5]
查
通过元素查索引 index()
l = ['allen', 'alex', 'Wusir']
res = l.index('allen')
print(res)
allen
通过索引查元素
l = ['allen', 'alex', 'Wusir']
print(l[0])
allen
最后还有切片去查和for 循环遍历查
list常用的方法
cout()计算某个元素在list中出现此时
sort()对列表进行排序
reverse()将列表中的元素反向存放
需要注意的地方
在循环列表的时候,最好不要修改列表的大小,否则会出现超过预期的结果
举例说明:
l1 = [11, 22, 33, 44, 55]
删除l1中索引为奇数的元素
l1 = [11, 22, 33, 44, 55]
for i in range(len(l1)):
if i % 2 == 1:
l1.remove(l1[i])
print(l1)
[11, 33, 44]
我们预期的结果应该是[11,33,55],但实际结果是[11, 33, 44],为什么呢,原因在删除列表中元素的过程中,元素对应的索引也发生了变化。
为了达到上述目的,我们可以从后向前删
l1 = [11, 22, 33, 44, 55]
for i in range(len(l1)-1,-1,-1):
if i % 2 == 1:
l1.remove(l1[i])
print(l1)
[11, 33,55]
元组
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。