一、 基本概念
注意点:
- 中括号表示
- 有序集合,无长度限制
- 元素可修改
- 索引从0开始,-1为最后末尾开始
- 可以用len()函数来求列表长度,min()函数求列表最小值,max()函数求列表最大值;
- 用 in 和 not in 检查指定元素是否在列表中,返回bool值;
- 列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)还可以包含函数名等任意类型。
二、列表基本操作
三、列表相关函数
1、列表创建
# -*- coding: utf-8 -*-
"""
Created on Mon Dec 23 09:31:05 2019
@author: Mr.Niu-列表学习
"""
#1、将元组转化为列表
s = list((1,3,5,7,9))
print(s)
#2、将range对象转化为列表
r = list(range(10))
print(r)
#3、将集合转化为列表
t = list({1,2,3,4,5})
print(t)
#4、创建空列表
w = list()
print(w)
w = [1,7,4,6,3,3]
print(w)
#5、将字符串转化为列表
print(list("hello world"))
#5、del删除列表对象
del w
print(w)
运行结果: 使用del删除w后,w已经无法访问!
2、列表切片
- 语法:列表[起始:结束]
# 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
# 做切片操作时,总会返回一个新的列表,不会影响原来的列表
# 起始和结束位置的索引都可以省略不写
# 如果省略结束位置,则会一直截取到最后
# 如果省略起始位置,则会从第一个元素开始截取
# 如果起始位置和结束位置全部省略,则相当于创建了一个列表的副本
# print(stus[1:])
# print(stus[:3])
# print(stus[:])
# print(stus)
- 语法:列表[起始:结束:步长]
# 步长表示,每次获取元素的间隔,默认值是1
# print(stus[0:5:3])
# 步长不能是0,但是可以是负数
# print(stus[::0]) ValueError: slice step cannot be zero
# 如果是负数,则会从列表的后部向前边取元素
print(stus[::-1])
3、列表相关函数
1、列表元素的修改
- 通过索引即下标直接修改
- 通过切片修改
# 通过切片来修改列表
# 在给切片进行赋值时,只能使用序列
# stus[0:2] = ['牛魔王','红孩儿'] 使用新的元素替换旧元素
# stus[0:2] = ['牛魔王','红孩儿','二郎神']
# stus[0:0] = ['牛魔王'] # 向索引为0的位置插入元素
# 当设置了步长时,序列中元素的个数必须和切片中元素的个数一致
# stus[::2] = ['牛魔王','红孩儿','二郎神']
- 通过切片删除
# 通过切片来删除元素
# del stus[0:2]
# del stus[::2]
# stus[1:3] = []
2、append,insert,extend函数,添加操作
- append()函数在列表末尾添加一个元素 (常用)
- extend()函数相当于列表的加法
stus.extend(['唐僧','白骨精'])
stus += ['唐僧','白骨精']
lst = [1, 2, 3, 4]
print(lst)
lst.append(5)
print(lst)
lst.insert(0, 0)
print(lst)
lst.insert(2, 1.5)
print(lst)
lst.extend([6, 7])
print(lst)
补充:extend函数可以连接两个列表
运行结果:
3、pop,remove,clear函数,删除操作
- clear()函数用来清空列表
4、sort,reverse函数
- sort()函数默认升序排列,若想要降序,需要加一个参数,reverse=True
data.sort(reverse=True)
补充:sample()函数是random库里的,在range(10000)里面随机选择不重复的10个数。
5、count,index函数,计数和查找
注:index()函数可以有三个参数 lst.index(x, start, end),即从start下标查找到end结束;