今日分享:python基础之列表
定义及创建
列表是一种序列结构,可以包含多个元素,不要求每个元素的类型一样,可以有数字,字符串等。
列表通常是以 [] 来表示的
>>> list_1 = [1,2,'hello',[],{'key':'value'},{1,2,3},(1,2,)]
>>> type(list_1)
<class 'list'>
这样一个列表就创建成功了,可以看到列表中的元素类型包括:数字、字符串、空值列表以及后面将会讲到的字典、元组和集合。
简单操作
增加元素
>>> names = ['Jack','Tom','Lily']
>>> names.append('Rose')
>>> names
['Jack', 'Tom', 'Lily', 'Rose']
append()函数是将一个元素默认增加到一个列表的最后位置
>>> names.insert(2,'Rose')
>>> names
['Jack', 'Tom', 'Rose', 'Lily']
insert() 函数是将一个元素增加到想要添加到的位置,比如上述括号中的 2,就是所要添加的位置索引
上面的方法是增加单个元素,如果把元素抽象理解成列表的话,那就是合并列表了
>>> names_1 = ['Bob','Peter']
>>> names = ['Jack', 'Tom', 'Lily', 'Rose']
>>> names.extend(names_1)
>>> names
['Jack', 'Tom', 'Lily', 'Rose', 'Bob', 'Peter']
可以看出,括号中列表的元素将全部作为元素被添加到起始列表中
或者names += names_1 这种方法和上述方法实现extend()同样的效果,在此说明一点区别,如果在合并列表时采用append(),出现的结果是将某一个列表作为一个整体元素(列表)添加到另一个列表中,而不是所谓的添加每一个元素。
删除元素
>>> names = ['Jack', 'Tom','Rose', 'Lily']
>>> names.pop()
'Lily'
>>> names
['Jack', 'Tom', 'Rose']
pop() 函数默认是将列表中的最后一个元素弹出,间接起到删除元素的作用
pop(2)当括号中插入位置参数时,会弹出相应位置的元素
>>> names = ['Jack', 'Tom', 'Lily', 'Rose']
>>> del names[0]
>>> names
['Tom', 'Lily', 'Rose']
使用del可删除指定位置的元素
>>> names = ['Jack', 'Tom', 'Lily', 'Rose']
>>> names.remove('Jack')
>>> names
['Tom', 'Lily', 'Rose']
使用remove可以删除指定值的函数,前提是你必须知道列表中元素的具体值
改变元素
列表中的元素是可变的,因此可以根据需要来变动其值
>>> names = ['Jack', 'Tom', 'Lily', 'Rose']
>>> names[2] = 'Peter'
>>> names
['Jack', 'Tom', 'Peter', 'Rose']
查询索引元素
>>> names = ['Jack', 'Tom', 'Lily', 'Rose', 'Bob', 'Peter']
>>> 'Lily' in names #判断某一值是否在列表中
True
>>> names.index('Lily') #根据值来索引位置
2
>>> names.count('Lily') #根据值来计算出现的次数
1
>>> len(names) #计算列表中元素的个数
6
排列元素
有两个方法可以对列表中的元素进行排序,方法 sort() 会对原列表进行排序,即改变了原列表的内容;采用函数 sorted() 排序时,它是对列表的副本进行排序,而原列表内容不变。
排序遵循什么原则呢,当列表中全部是数字时,将从小到大升序排列;当全部是字符串时,按照字母标的顺序排列,大小写混合情况下,将会先将大写开头的排序,后进行小写开头的排序。当然了,字符串和数字混合时是不支持排序的,因为类型都不一样,排序并没有什么意义
切片提取元素
>>> list_1 = ['a', 'c', 'b', 'A', 'F', 'L', 'B']
>>> sorted(list_1)
['A', 'B', 'F', 'L', 'a', 'b', 'c']
>>> list_1
['a', 'c', 'b', 'A', 'F', 'L', 'B'] #原列表内容不变
>>> list_1.sort()
>>> list_1
['A', 'B', 'F', 'L', 'a', 'b', 'c'] #先大写后小写 原列表内容改变
就是说按照自己的要求将列表中的部分元素提取出来来满足自己的需要
>>> list_1 = ['a','c','b','A','F','L','B']
>>> list_1[0:2] #左闭右开原则,切记第一个索引为0
['a', 'c']
>>> list_1[0:8] #后一个索引大于元素个数时,全部提取
['a', 'c', 'b', 'A', 'F', 'L', 'B']
>>> list_1[:] #将全部元素提取
['a', 'c', 'b', 'A', 'F', 'L', 'B']
>>> list_1[0:5:2]
['a', 'b', 'F']
第二个:冒号后的数字,代表的是步长,也就是隔几个空提取一个,上述步长为2,也就是间隔一个元素提取一次。