一、创建列表
1、定义列表中有a、b、c 三个变量
list1=["a","b","c"]
2、列表解析
例子定义1到11的每个数的平方为一个列表
squares = [value**2 for value in range(1,11)]
二、应用列表
1、遍历
for i in list1:
print(i)
输出 a b c ,i依次为列表中的元素
2、通过索引访问
a、索引为0的第一个元素
list1[0]
b、倒数第二个元素
list1[-2]
代表列表的第一个元素
三、常用函数
1、修改
通过索引访问元素进行修改
list1[0]="d"
修改list1列表中的第一个元素为d
2、添加
(1)列表在末尾添加元素,例为添加元素f
list1.append("f")
(2)通过索引添加元素,在索引位置为 1的地方也就是第二个元素位置添加元素“tianjia”,原来 的第二个元素变为第三个元素,后面的元素位置依次加1
list1.insert(1,"tianjia")
3、删除
(1)使用del删除元素,
例子为删除元素索引位置为0的元素,
del list1[1]
(2)使用pop删除元素,pop中文翻译为弹出的意思
a、下面例子为删除列表最后一个元素
list1.pop()
b、删除指定位置的元素
删除索引为1的元素,
list1.pop(1)
(3)根据值,使用remove删除元素,
例子删除元素值为a的元素,使用一次只能删除一个元素,如果有多个元素的值为a,就要使用for循环进行判断删除了。
list1.remove("a")
如果有多个元素a,可使用while
while "a" in list1:
list1.remove("a")
4、排序
a、sort()按照字母顺序把列表元素进行排序,会改变列表中元素的位置
例子
list1.sort()
b、按照字母的顺序倒序排列,会改变列表中元素的位置,在sort()中添加参数reverse=Ture
例子
list1.sort(reverse=Ture)
c、在sort()中添加参数len=Ture ,按元素长度排序
list1.sort(len=Ture)
d、sorted()临时排序,不改变列表中元素的位置,也可传递reverse=Ture按照字母的顺序倒序排列
list1.sorted()
5、反转列表排序reverse()
例子反转列表list1的顺序
list1.reverse
6、判断列表长度len()
例子、判断列表list1的长度
len(list1)
7、列表组合
(1)可用extend()
例子,扩展列表list1,使用列表list2。list2的元素追加到list1的后边,列表list2不变,列表list1扩展
list1.extend(list2)
(2)使用+号
例子,两个列表都不变,返回两个列表的组合
list1+list2
8、统计某个元素在列表中出现的次数count()
例子统计ss在列表list1中出现的次数
list1.count("ss")
9、查找元素中,第一个匹配项的索引位置
例子,查找ss在list1中的出现的第一个位置。
list1.index("ss")
四、切片
取头不取尾(取前面的索引的元素,取后面索引的元素的前一个元素)
1、取元素
list1[:]取整个列表中的所有元素
list1[0:2]取0到索引为1的元素
list1[2,-1]取索引为2的元素到倒数第二个元素
2、不能为切片的后面的值小于前面,这样会取到空
如 :list1[3:1],或 list1[-1,-3]
3、可以设置切片取元素的间隔
list1=["a","b","c",'d',"e","f"]
print(list1[::2])
#输出为['a', 'c', 'e']
五、列表的复制
1、不要使用等号直接
这样使得两个列表共用一个存储的列表值,改变一个另一个也会发生相同的变化。
list2=list1,
2、可使用切片复制
list2=list1[:]
3、深copy和浅copy
https://blog.youkuaiyun.com/qq_18246731/article/details/88198558
六、列表和集合的相互转化
用于消除列表中的重复值
1、集合转化为列表,list()
使用list()函数把集合set1转化列表,然后赋值给list2
化为
2、列表转化为集合,set()
使用set()函数把列表list2,转化为集合,然后赋值给set1
set1 = set(list2)
七、列表和元组的相互转化
用于使得元素不可被改变。防止不可改变的值被误改
1、列表转化为元祖
tuple1 = tuple(list1)
2、元组转化为列表
list1 = list(tuple1)
八、集合求交集、并集、差集
列表不能直接求交集、并集、差集
1、转化为集合
集合可以直接求交并差,而列表不能。
先把两个列表转化为集合,然后通过集合求交集、并集、差集等,结果然后在转化回列表。
list1=[1,2,3]
list2=[1,4,6]
# 并集
a = set(list1) | set(list2)
a -> {1, 2, 3, 4, 6}
# 交集
b = set(list1) & set(list2)
b -> {1}
# 差集(在list1当中有,list2当中没有的元素)
c = set(list1) - set(list2)
c -> {2, 3}
# 对称差集(项在t或s中,但不会同时出现在二者中)
d = set(list1) ^ set(list2)
d -> {2, 3, 4, 6}
2、使for循环
如担心列表原来的顺序改变,使用for顺应原来的顺序
示例求差集
list1=[1,2,3]
list2=[1,4,6]
for item1 in list1:
for item2 in list2:
if item1 == item2:
list1.remove(item1)
list1-->[2, 3]