python中list是一个序列(字符串和元组也是序列),有下标,可以切片,拼接等,list也是一个可变数据类型,即可以修改list的元素的值且list的内存地址不变。
一.list的定义和遍历使用
list使用中括号[]来定义
numbers = ["one", "two", "three", "four", "five"]print(type(numbers))print(numbers)
输出结果如下['one', 'two', 'three', 'four', 'five']
由可看出numbers是一个list列表数据类型,有5个元素,可以直接print打印所有元素
遍历list列表
list列表中可以存储不同的数据类型
但是在开发中,list中通常用来存储相同类型的数据,通过for遍历就可以对每一个数据执行相同的操作
#列表遍历
for i innumbers:print(i, end=" ")print()for i, j inenumerate(numbers):print(i, j)
输出结果如下
one two three four five
0 one1two2three3four4 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__() 求列表的元素个数