python中list是一个序列(字符串和元组也是序列),有下标,可以切片,拼接等,list也是一个可变数据类型,即可以修改list的元素的值且list的内存地址不变。
一.list的定义和遍历使用
list使用中括号[]来定义
numbers = ["one", "two", "three", "four", "five"] print(type(numbers)) print(numbers) 输出结果如下 <class 'list'> ['one', 'two', 'three', 'four', 'five']
由<class 'list'>可看出numbers是一个list列表数据类型,有5个元素,可以直接print打印所有元素
遍历list列表
list列表中可以存储不同的数据类型
但是在开发中,list中通常用来存储相同类型的数据,通过for遍历就可以对每一个数据执行相同的操作
# 列表遍历 for i in numbers: print(i, end=" ") print() for i, j in enumerate(numbers): print(i, j) 输出结果如下 one two three four five 0 one 1 two 2 three 3 four 4 five
使用for in结构可以遍历list列表中的每一个成员
enumerate()函数可以同时显示元素在列表中的下标。
二.列表的切片和倒序
列表的切片和str字符串一样,使用list[起始位置:结束位置]可以切取从其实位置下标开始到结束位置下标的前一个元素,起始位置和结束位置可以都不写或写一个
先看一下切片示例
numbers = ["one", "two", "three", "four", "five"] # 列表切片 print(numbers[1:2]) print(numbers[:3]) print(numbers[:]) print(numbers[::2]) print(numbers[1::-1]) print(numbers[::-2]) 输出结果如下: ['two'] ['one', 'two', 'three'] ['one', 'two', 'three', 'four', 'five'] ['one', 'three', 'five'] ['two', 'one'] ['five', 'three', 'one']
列表的倒序
通过list本身的方法和切片实现
numbers = ["one", "two", "three", "four", "five"] # 列表倒序 print(numbers[::-1]) numbers.reverse() print(numbers) 输出结果如下 ['five', 'four', 'three', 'two', 'one'] ['five', 'four', 'three', 'two', 'one']
三.list的常用操作
列表是可变数据类型,也就是说list中的元素值可以修改,修改后查看list的内存地址是不变的;字符串是不可变数据类型,虽然字符串变量的值也可以修改,但其实是在内存中重新开辟了一块空间保存新的字符串,并将字符串变量指向新的地址,所以字符串修改后内存地址是改变的。
# 验证字符串是可变数据类型
print(id(numbers)) # 打印numbers列表在解释器中的内存地址 numbers.reverse() # 将列表反转 print(numbers) # 反转后打印列表成员 print(id(numbers)) # 再打印numbers列表在解释器中的内存地址,和上一次未修改前比较相同,说明列表是可变数据类型 输出结果如下 1863920966280 [4, 3, 2, 1] 1863920966280
由于list是可变数据类型,所以有添加,修改,删除成员等操作
numbers = [1, 2, 3, 4] # list添加成员 numbers.append(5) # 添加成员5到列表最后 print(numbers) numbers.insert(1, 0) # 在列表下标为1的位置添加成员0 print(numbers) 输出结果如下 [1, 2, 3, 4, 5] [1, 0, 2, 3, 4, 5]
numbers = [1, 2, 3, 4] # list删除成员 del numbers[0] # 删除下标0位置的元素,此时numbers = [2, 3, 4] numbers.remove(2) # 删除元素2,此时numbers = [3, 4] numbers.pop(0) # 删除下标0位置的元素,此时numbers = [4] print(numbers) # 打印numbers = [4] # del numbers # 把列表都删掉了 输出结果如下 [4]
numbers = [1, 2, 3, 4] # list 修改元素值 numbers[0] = "one" # 将下标0位置的元素重新赋值为"one" print(numbers) # 打印numbers = ["one", 2, 3, 4] 输出结果如下 ['one', 2, 3, 4]
# 列表其他操作 numbers = [1, 2, 3, 4] # list 查询成员 print(numbers[0]) # list元素个数 print(numbers.__len__()) print(len(numbers)) 输出结果如下 1 4 4
四.小结
type 获取数据类型
id 查看在解释器中的内存地址
reverse() 列表反转
append(e) 添加成员到列表尾部
insert(index, e) 在指定下标位置插入元素
remove(e) 删除元素e
del e 删除元素e
pop(index) 删除指定下标位置的元素
len() 求列表的元素个数
__len__() 求列表的元素个数