列表:可存储多个不同类型的数据。可增、删、改、查。
访问方式:访问单个元素:列表名[下标];访问多个元素(切片):列表名[start: stop: step]
list_names = ['张三', '李四', '王五']
print(list_names[2]) # 输出王五
print(list_names[0: 2]) # 输出['张三', '李四']
①增:列表名.append(元素) :在列表末尾添加一个元素。
列表名.extend(序列) :在列表末尾追加一个序列(字符串或列表等)。
列表名.insert(下标, 元素) :在列表对应的下标插入元素。
list_names = ['张三', '李四', '王五']
list_names.append('赵六') # ['张三', '李四', '王五', '赵六']
print(list_names)
list_names.extend('赵六') # ['张三', '李四', '王五', '赵', '六']
print(list_names)
list_names.extend(['孙七', '柳八']) # ['张三', '李四', '王五', '孙七', '柳八']
print(list_names)
list_names.insert(1, '赵六') # ['张三', '赵六', '李四', '王五']
print(list_names)
②删:del 列表名[下标] :删除列表中对应下标的元素,不写则默认删除整个列表。
列表名.pop(下标) :删除对应下标的元素,并返回删除的元素。不写则默认删除最后一个。
列表名.remove(元素) :删除列表中对应元素的第一个匹配项。
列表名.clear() :清空列表。
list_names = ['张三', '李四', '王五']
del list_names[1] # ['张三', '王五'] 若不填下标,删除整个列表
print(list_names)
list_names.pop(0) # ['李四', '王五'] 若不填下标,则默认删除最后一个
print(list_names)
print(list_names.pop(0)) # 输出 张三,返回被删除的值
list_names.remove('王五') # ['张三', '李四'] 若有多个则删除第一个
print(list_names)
list_names.clear() # [] 清空
print(list_names)
③改:列表[下标] = 新元素 : 将列表对应下标修改
列表[start: stop: step]:将列表切片修改
list_names = ['张三', '李四', '王五']
list_names[0] = '赵六' # ['赵六', '李四', '王五']
print(list_names)
list_names[0:2] = '李华', '李明' # ['李华', '李明', '王五']
print(list_names)
④查:列表名.index(元素) : 返回元素对应的下标
列表名.count(元素) :返回元素重复的次数
list_names = ['张三', '李四', '王五', '张三']
print(list_names.index('王五')) # 2
print(list_names.count('张三')) # 2
⑤列表排序:注意:排序类型需一致
列表名.sort(reverse=True/False) :可以对列表进行永久排序
sort(列表名, reverse=True/False) :可以对列表进行临时排序
reverse=True:按降序排列;reverse=False:按升序排列
num = [5, 3, 7, 0, 1, 2, 4]
s = ['b', 'e', 'h', 's', 'c']
num.sort(reverse=False) # [0, 1, 2, 3, 4, 5, 7]
print(num)
s.sort(reverse=True) # ['s', 'h', 'e', 'c', 'b']
print(s)
print(sorted(num, reverse=True)) # [7, 5, 4, 3, 2, 1, 0]
⑥ 列表推导式:
[表达式 for 变量 in 列表] ; [表达式 for 变量 in 列表 if 条件]
data_ = [i**i for i in range(6)] # [1, 1, 4, 27, 256, 3125]
data = [i**i for i in range(6) if i <= 4] # [1, 1, 4, 27, 256]
print(data_, data)