列表是一种可以存储不同数据类型,且数据可变的序列
空列表的创建
list1 = []
list2 = list()
print(list1)
print(list2)
非空列表的创建
m_list = ["我是一", "我是二", 3]
n_list = list("我是一我是二3")
print(m_list)
print(n_list)
访问列表元素—索引
m_list = ["北京","青岛","杭州","上海","重庆","丽江"]
print(m_list[0]) # 北京
print(m_list[1]) # 青岛
访问列表元素—切片
列表名[起始下标: 结束下标: 步长]
- 下标值可以为空
- 如果不写,则起始下标为0,结束下标为长度-1
- 下标为负数
- 列表的最后一个元素的下标为-1
- 如果起始下标大于结束下标,则步长必须为负数
m_list = ["北京","青岛","杭州","上海","重庆","丽江"]
n_list1 = m_list[0:2] # 0-1 包头不包尾
print(n_list1) # ['北京', '青岛']
m_list = ["北京","青岛","杭州","上海","重庆","丽江"]
n_list = m_list[0:6:2]
print(n_list) # ['北京', '杭州', '重庆']
c = 0
for i in n_list:
print("n_list[{}] = {}".format(c,i), end=" ") # n_list[0] = 北京 n_list[2] = 杭州 n_list[4] = 重庆
c+=2
# 反向切片
n_list = m_list[-4:-2] # 右数第二个开始 ['杭州', '上海']
print(n_list)
列表的复制
列表1 = 列表2
- 这样子两列表内存一致,即指向同一快内存空间,改变一个另一个也改变
m_list = ["北京", "青岛", "杭州", "上海", "重庆", "丽江"]
n_list = m_list
l_list = m_list[:]
print(n_list) # ['北京', '青岛', '杭州', '上海', '重庆', '丽江']
print(l_list) # ['北京', '青岛', '杭州', '上海', '重庆', '丽江']
print("m_list id : ", id(m_list)) # m_list id : 2768987906632
print("n_list id : ", id(n_list)) # n_list id : 2768987906632
列表1 = 列表2.copy()
- 两列表内存不一致
m_list = ["北京", "青岛", "杭州", "上海", "重庆", "丽江"]
n_list = m_list.copy()
print(n_list) # ['北京', '青岛', '杭州', '上海', '重庆', '丽江']
print("m_list id : ", id(m_list)) # m_list id : 1918943715912
print("n_list id : ", id(n_list)) # n_list id : 1918943715976
添加
- append() : 在列表末尾追加新的元素对象
- insert() : 将元素对象插入列表指定位置
- extend() : 在列表末尾一次性追加另一个序列中的多个值
删除
- pop : 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
- remove : 移除列表中某个值的第一个匹配项
- clear : 清空整个列表内数据
- del : 删除列表内元素或者整个列表
计算
获取指定元素出现的次数
list.count(“key”)
m_list = ["北京", "北京", "青岛", "杭州", "上海", "重庆", "丽江"]
print(m_list.count("北京")) # 2
获取列表首次出现的下标
list.index(“key”)
m_list = ["北京", "北京", "青岛", "杭州", "上海", "重庆", "丽江"]
print(m_list.index("青岛")) # 2
统计数值列表的元素和
sum(listName)
m_list = [1, 2, 3]
print(sum(m_list)) # 6
获得列表长度
len(listName)
m_list = [1, 2, 3]
print(len(m_list)) # 3
排序
- sort : 原表排序,改变了原列表
- sorted : 对原列表进行排序,然后返回排序后的新列表,不改变原列表。
m_list = [2, 1, 3]
m_list.sort() # 升序
print(m_list) # [1, 2, 3]
m_list.sort(reverse=True) # 降序
print(m_list) # [3, 2, 1]
m_list = [2, 1, 3, 5, 6]
import random
random.shuffle(m_list) # 随机排序
print(m_list)
n_list = sorted(m_list)
print(n_list) # [1, 2, 3, 5, 6]
n_list = sorted(m_list, reverse=True)
print(n_list) # [6, 5, 3, 2, 1]
反转
list.reverse()
m_list = [2, 1, 3, 5, 6]
m_list.reverse()
print(m_list) # [6, 5, 3, 1, 2]