Python之List列表的增删改查
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型,灵活度较高。
python的list是可变数据类型,它支持添加 append、插入 insert、修改、删除del等操作。
==============================================================================================================
一、列表的创建
1. 创建空列表:
list=[]
listName=list()
2. 可以把python中的list列表理解为任意对像的序列,只要把需要的参数值放入到中括号[ ]里面就可以了,就像下面这样操作:
names = ['ada','amy','ella','sandy']
列表可以包含不同类型对像,也支持嵌套(多维数组):
例:a = ['a',567,['adc',4,[12,'a']],(1,2)]
这个列表中就包含了字符串、整型、元组这些元素,同时还嵌套了一个列表。
二、添加新元素
1. list.append() 在list 末尾增加一个元素
例:name.append('4ds')
2. list.insert(100,'4ds') 在指定位置添加元素,如果指定的下标不存在,那么就是在末尾添加
3. list1.extend(list2) 合并两个list list2中仍有元素
例:list1=['a','b','c',0]
list2=[1,2,3,'d',6]
list1.extend(list2)
print(list1) ====>['a','b','c',0,1,2,3,'d',6]
三、修改更新
listName[7]='haha' #更新第8个元素的值为:haha
print('updated',listName)
四、查看列表长度
print('列表的长度是:',len(list1)) #返回列表中元素总个数 ===》9
五、查看列表中的值
1. 列表是有序的,可以通过python list下标来修改特定位置的值。
name = ['0test1','1yrd','2sdfh','3sdf']
print(name[2]) #查找下标为2的元素 ===》2sdfh
print(name[-1]) #索引取负数时,从最后一个元素开始查找 ===》3sdf
2. 遍历列表 (详情参见list循环、切片)
例1:
mylist = [1,2,3,4]
for i in mylist:
print(i)
等同于:
例2:
mylist = [1,2,3,4]
for i in range(len(mylist)):
print(mylist[i]) 每个元素都有一个地址
3. 查看某个元素在列表中出现的次数(个数)
print(list.count(‘xx’)) 查看某个元素在这个列表里的个数,如果该元素不存在,那么返回0
4. 查看某个元素的下标、索引值
print(list.index(‘xx’))找到这个元素的下标(索引),如果有多个,返回第一个,如果找一个不存在的元素会报错
六、删除列表中的元素及列表删除
1. list.pop() 删除最后一个元素,有返回值,返回被删除的元素
2. list.pop(n)指定下标,删除指定的元素,如果删除一个不存在的元素会报错
3. list.remove(xx) 删除list 里面的一个元素,有多个相同的元素,删除第一个 ;无返回值,显示None
4. del list[n] 删除指定下标对应的元素 ,n为负数时,从最后一个元素开始找起
5. del list 删除整个列表, list删除后无法访问
6. list.clear() 清空列表,返回一个空列表
7. 不要循环删除list元素,会导致结果错乱,如果要删除,先复制出来一个相同list
li = [1,1,2,3,4,5,6,7,7,8] li2 = [1,1,2,3,4,5,6,7,7,8] #长度不变 for i in li2: if i%2!=0: li.remove(i) print(li)
七、反转和排序
1. list.reverse() 将列表反转
list1=['abc','bcd','eds'] print(list1) list1.reverse() #这种方式只能分开2步,不能print(list1.reverse()) print(list1) #输出 ['abc', 'bcd', 'eds'] ['eds', 'bcd', 'abc']
2. list.sort()排序,默认升序且只能对同数据类型的列表进行排序,否则报错
如:
mylist = ['b','wwds','a','912d','5wer']
mylist.sort()
print(mylist) ===》['5wer', '912d', 'a', 'b', 'wwds']
3. list.sort(reverse=True) 降序排列 ==>['wwds', 'b', 'a', '912d', '5wer']
注:list 中有字符串,数字时不能排序,排序针对同类型
八、布尔值,返回true或者false
print(1<2) ==》True
九、列表操作的函数
1、len(list):列表元素个数
2、max(list):返回列表元素最大值
3、min(list):返回列表元素最小值
4、list(seq):将元组转换为列表
5、enumerate 用法(打印元素对应的下标)
同时取下标,元素
结果如下:
十、列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |