一、认识列表
1.什么是列表
是python中的容器类的数据类型,可以用来存储多个数据。可变的,有序的。
可变指的是列表中的元素的值和位置以及列表的长度可变 --->决定列表可以进行增删改
有序 --->决定可以通过下标来获取元素
2.字面量
[元素1, 元素2, 元素3....]
[] ---> 空列表
列表中的元素可以是任何类型的数据 -->包括整数、浮点数、布尔、字符串、列表、字典、元祖、集合、函数、类的对象等
list1 = [23, 1.87, 'abc'] # 声明一个变量list1,给它赋了一个列表。列表有三个元素
# 声明一个列表,列表中有三个元素,分别是[1,2], 'abc', False
list2 = [
[1,2],
'abc',
False
]
list3 = [
{'a': 10},
{'abc': True}
]
print(type(list3))
# 注意:变量也可以作为列表的元素
name = '路飞'
names = ['小明', '小花', '小红', name]
二、获取列表元素
1.获取单个元素
列表[下标]
说明:列表一旦确定,列表中的每个元素的下标就确定了.下标的范围0到列表长度减1或者-1到列表长度
names=['鸣人','佐助','小樱','雏田']
print(names[0])
# print(names[20]) # 下标不能越界
2.获取部分元素(切片)---->结果是个列表
和字符串切片一样.
列表[起始下标:结束下标]或者 列表[起始下标:结束下标:步长]
print(names[1:3])
print(names[:4:2])
三、元素的增删改
films = ['绿巨人', '钢铁侠', '蜘蛛侠', '蝙蝠侠']
1.增(增加元素)
列表.append(元素)---->在列表的最后添加一个元素
films.append('死侍')
print(films)
b.insert(下标,元素)--->在制定的下标前添加指定的元素
films.insert(1, '超人')
print(films)
films.insert(0, '雷神')
print(films)
2.删(删除列表中的元素)
a.del 列表[下标]--->删除列表中指定位置的元素
del语句是python中用来删除数据的语法,可以删除任何数据
heros=['盖伦', '维克托', '提莫', '托儿索', '儿童劫']
del heros[-2]
print(heros)
b.列表.remove(元素)--->删除列表中指定的元素
注意:如果这个元素在列表中有多个,只删最前面的那一个
heros.remove('儿童劫')
print(heros)
c.列表.pop()--->将列表中的最后一个元素取出
列表.pop(下标)--->将列表中指定下标对应的元素取出
beauty = ['余婷', '范冰冰', '周迅', '寡姐', '赵丽颖']
person = beauty.pop()
print(beauty, person)
3.改(修改列表中的元素)
列表[下标] = 新值
teacher = ['余婷', '骆昊', '王海飞', '肖世荣']
teacher[0] = "YuTing"
print(teacher)
四、列表相关运算
1.+
列表1+列表2--->将列表1和列表2中的元素合并,产生一个新的列表
print([1,2,3]+[1,2,3])
2.*
列表*n--->将列表中的元素重复n次,产生一个新的列表
print([1,2,3]*3)
3.比较运算
列表1==列表2 --->判断两个列表中的元素是否相等
两个列表比较大小,比较的是每个元素的大小
补充:比较是否相等的两种方式, ==和is
一个变量有id,value,type元素
id-->地址(数据在内存中储存的地址)
value--->数据的值
type--->数据类型
python中变量存储数据的时候存的时候数据地址id,取出来用的值是value
== ---> 判断值是否相等
is ---> 判断地址是否相等
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1
print(id(list1), id(list2), id(list3))
print(list1 == list2) # True
print(list1 is list2) # False
print(list1 is list3) # True
五、列表赋值
list1 = ['a', 'aa', 'aaa']
list2 = list1 # 将list1中的数据的id赋给list2
list2.append('aaaa')
print(list2)
print(list1)
list3 = list1[:] # 将list1中的数据拷贝一份,存到新的内存区域中,然后将新的地址给list3
list3.pop(0)
print(list3)
print(list1)
总结:用一个列表给另外一个列表赋值的时候,要注意如果是直接赋值,可能会因为修改其他一个列表的元素而影响另外一个列表。如果不想相互影响,赋值的时候赋切片或者拷贝
list1 = [1, 2, 3]
list2 = list1
list1 = [1, 200, 3]
list1[1] = 'abc'
print(list1, list2)
六、列表相关的方法
python中包含以下函数
序号 |
函数 |
1 |
len(list) 列表元素个数 |
2 |
max(list) 返回列表元素最⼤值 |
3 |
min(list) 返回列表元素最⼩值 |
4 |
list(seq) 将元组转换为列表 |
python中包含以下方法
序号 |
方法 |
1 |
list.append(obj) 在列表末尾添加新的对象 |
2 |
list.count(obj) 统计某个元素在列表中出现的次数 |
3 |
list.extend(seq) 在列表末尾⼀次性追加另⼀个序列中的多个值(⽤新列表扩展原来的列表) |
4 |
list.index(obj) 从列表中找出某个值第⼀个匹配项的索引位置 |
5 |
list.insert(index, obj) 将对象插⼊列表 |
6 |
list.pop([index=-1]]) 移除列表中的⼀个元素(默认最后⼀个元素),并且返回该元素的值 |
7 |
list.remove(obj) 移除列表中某个值的第⼀个匹配项 |
8 |
list.reverse() 反向列表中元素 |
9 |
list.sort(cmp=None, key=None, reverse=False) 对原列表进⾏排序 |
10 |
list.clear() 清空列表 |
11 |
list.copy() 复制列表 |