列表是最常用的Python数据类型
它可以作为一个方括号内的逗号分隔值出现。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"];
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符(可以用切片的方法),如下所示:
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print ("list1[0]: ", list1[0]) #打印出来为:list1[0]: Google
print ("list2[1:5]: ", list2[1:5]) #打印出来为 list2[1:5]: [2, 3, 4, 5]
嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
li=[1,2,3]
lis=['a','b','c']
list=[li,lis]
print(list) #打印为[[1, 2, 3], ['a', 'b', 'c']]
print(list[0]) #打印为[1, 2, 3]
print(list[0][2]) #打印为3 意思是在第一个列表里面寻找下标为2的字符
更新列表
你可以对列表的数据项进行修改或更新
1.直接用寻找下标的方法,进行添加:
list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2]) #打印为第三个元素为 : 1997
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2]) # 打印为更新后的第三个元素为 : 2001
2.用append() 在括号中输入你需要追加的值 默认追加到尾部
3.用insert() 括号中输入你需要追加的值 添加到什么位置 根据下标 超出列表长度,则自动添加到最后
list=[33,'abc','123',80,'Google',1997,2000]
list.append('2018')
print(list) # 打印为[33, 'abc', '123', 80, 'Google', 1997, 2000, '2018']
list.insert(3,'哈哈')
print(list) # 打印为[33, 'abc', '123', '哈哈', 80, 'Google', 1997, 2000, '2018']
list.insert(10,'略略略')
print(list) # 打印为[33, 'abc', '123', '哈哈', 80, 'Google', 1997, 2000, '2018', '略略略']
4.extend (seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
注: 列表1.extend(列表2) 是把列表2迭代后遍历循环追加到列表1
li1=['a','b','c']
li2=[1,2,3,4]
li3=[li1,li2]
print(li3) #打印为[['a', 'b', 'c'], [1, 2, 3, 4]]
li1.append(li2)
print(li1) #打印为['a', 'b', 'c', [1, 2, 3, 4]]
li1.extend(li2)
print(li1) # 打印为:['a', 'b', 'c', 1, 2, 3, 4] 所以使用extend()
删除列表元素
1.del 删除 可用切片的方法
li1=[1,2,3,4,5]
del li1[2]
print(li1) #打印为[1, 2, 4, 5]
del li1[2:]
print(li1) #打印为[1, 2]
2.pop() 删除列表中的一个元素(默认最后一个元素),并且返回该元素的值 也可以用下标删除
li2=['a','b','c','a','d','e']
li2.pop() #删除默认的最后一位
print(li2) #打印为['a', 'b', 'c', 'a', 'd']
li2.pop(1) #使用下标删除 删除下标为1的字符
print(li2) # 打印为['a', 'c', 'a', 'd']
3.remove() 删除列表中某个值的第一个匹配项 括号中输入所要删除的对象 如果存在多个 则删除一个
li2=['a','b','c','a','d','e']
li2.remove('a') #删除 有同列的 只删一个
print(li2) #打印为 ['b', 'c', 'a', 'd', 'e']
返回寻找下标
1 . index() 从列表中找出某个值第一个匹配项的索引位置 不存在抛异常
括号中有四个值(自己, 对象 , 开始 , 结束)
li1=[1,2,3,4,5,6,3,7,8]
print(li1.index(3)) #打印为2
print(li1.index(3,3,7)) #打印为6 在索引为3到7之间寻找
Python列表函数
1.dir(object) 将一个数据类型的所有函数和属性输出
print(dir(list))
#打印为 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__',
# '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
# '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__',
# '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
# '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__',
# '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__',
# 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop',
# 'remove', 'reverse', 'sort']
2. len() 列表元素个数
li1=[1,2,3,4,5,6,3,7,8]
print(len(li1)) #打印长度 9
print(li1.__len__()) #打印长度9和上效果一样 __len__() 下划线 下划线 类型的函数代表私有 一般不调用
3.max(list) 返回列表元素最大值 以ascii表为依据
4.min(list) 返回列表元素最小值 以ascii表为依据
li1=[1,2,3,4,5,6,3,7,8]
print(max(li1)) #按ASCII表查询
print(min(li1)) #按ASCII表查询
.
5. list(seq) 将元组转换为列表
tu=(1,2,3) #元组
new_li=list(tu)
print(tu) # 打印为(1, 2, 3)
print(new_li) #打印为 [1, 2, 3]
6. reverse() 函数用于反向列表中元素。 该方法没有返回值,但是会对列表的元素进行反向排序。
li1=[1,2,3,4,5,6,3,7,8]
li1.reverse()
print(li1) #打印为[8, 7, 3, 6, 5, 4, 3, 2, 1]
7.sort([func]) 对原列表进行排序 func -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
li1=[1,2,5,6,3,4,7,8]
li1.sort()
print(li1) #打印为[1, 2, 3, 4, 5, 6, 7, 8] 按照ascii码排序
8.clear() 清空列表
li1=[1,2,5,6,3,4,7,8]
li1.clear()
print(li1) #打印为 [ ]
9.copy() 复制列表 则顾名思义,复制一个副本,原值和新复制的变量互不影响
li1=[1,2,5]
li2=li1.copy()
print(li1) # 打印为[1, 2, 5]
print(li2) # 打印为[1, 2, 5]
li2[2]=3
print(li1) # 打印为[1, 2, 5]
print(li2) # 打印为[1, 2, 3]