写在前:不管我们学任何语言,如果对其进行增删查改都是最重要,可以说在学习列表,元组,集合,字符串的最基本的也是如何对其增删查改
有序列表:列表 元组 字符串
无序列表:字典 集合
可变序列:列表 字典 集合
不可变序列:元组 字符串
列表详讲
列表
应用场景:列表是最常用的一个用法,在我们挨个挨个提取数据的时候需要用到列表; 需要对其进行排序等操作的时候也一般转换成列表
- 创建一个空列表
a=[]
- 列表转换:
list((3,5,6,7,8)) #将元组转换成列表 [3,5,6,7,8]
1. 列表的增加 append(),insert(),extend()
- append()用于向列表尾部追加一个元素
- insert(m,n)用于向列表任意一个位置m插入一个元素n
- extend()用于将另一个列表中的元素追加到当前列表的尾部
- 其中append()是最常见的增加用法,三者都不影响列表对象在内存中的起始地址
案例:
x=[1,2,3]
x.append(4)
x
[1, 2, 3, 4]
x=[1,2,3]
x.insert(2,0)
x
[1, 2, 0, 3]
x=[1,2,3]
x.extend([4,5,6])
x
[1, 2, 3, 4, 5, 6]
2.列表的删除pop() remove() clear()
- pop()用于删除并返回指定位置
- remove()用于删除列表中第一个值与指定值相等的元素
- clear()用于清空列表中的所有元素
- 使用del命令删除列表中指定位置的元素
案例
x=[1,2,3,423,213]
print(x.pop(2))
print(x)
3
[1, 2, 423, 213]
x=[1,2,3,423,213]
print(x.remove(2))
print(x)
None
[1, 3, 423, 213]
x=[1,2,3,423,213]
print(x.clear())
print(x)
None
[]
3. 列表的访问(查) index() count() reverse() sort(key=none,reverse=False)(这几个函数很重点!)
- 直接索引
x[1]
- index()用于返回指定元素在列表中首次出现的位置(最常用)
- count()用于返回列表中指定元素出现的次数
- sort()用于按照指定的规则对元素进行排序默认的reverse是升序排序(重点重点重点!)
- sorted()和sort()的区别是什么呢?
x=list("python sadapjkajisudht")
print(x)
print("第一种索引方法,直接索引:",x[1])
print("第二种索引方法 index():",x.index("p"))
print("count:",x.count("t"))
[‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ’ ', ‘s’, ‘a’, ‘d’, ‘a’, ‘p’, ‘j’, ‘k’, ‘a’, ‘j’, ‘i’, ‘s’, ‘u’, ‘d’, ‘h’, ‘t’]
第一种索引方法,直接索引: y
第二种索引方法 index(): 0
count: 2
sort()
key:以什么规则排序 abs,len 或者用匿名函数代替
reverse:是否升序排列
x=list(range(11))
import random
random.shuffle(x)
[5, 0, 8, 6, 3, 1, 7, 10, 9, 2, 4]
x.sort()
x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x.sort(key=lambda item:len(str(item)),reverse=True)
x
[10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
用字符串的长度为排序规则降序排序,10的长度为2在最前面 其他的都为1序列不变
4. 列表对象的运算符
+也可以起到实现列表增加元素目的,但是这个运算符不会原地操作,而是返回心列表
x=[1,2,3]
print(id(x))
y=x+[2,3,4]
y
y*=2
y
140242542081472
[1, 2, 3, 2, 3, 4]
[1, 2, 3, 2, 3, 4, 1, 2, 3, 2, 3, 4]
测试成员是否在列表内可以使用in
3 in [1,2,3]
True
内置对象的使用
all(x) # 测试是否所有的元素都为True
max(x) # 返回列表中最大的元素
min(x) # 返回列表中最小的元素
sum(x) # 返回列表中所有元素的和
列表推导式
案例1:
a=[x*x for x in range(10)]
a
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
等价与:
a=[]
for x in range(10):
a.append(x*x)
案例2:
f=['apple','banba','passon']
a=[w.strip()for w in f]
a
[‘apple’, ‘banba’, ‘passon’]
等价
a=list(map(lambda x:x.strip(),f))