列表
创建列表
普通列表
number = [1,2,3,4,5]
元素多类型列表
mix = [1,'pbc',1.414,[1,2,3]]
空列表
empty = []
向列表中添加元素
append()方法
append()方法可以向列表最后添加一个元素,例如:
number = [1,2,3,4,5]
number.append(6)
print(number)
结果是[1,2,3,4,5,6]
extend()方法
extend()方法可以拓展列表,即:将一个列表中的元素加入到另一个列表的后面。例如:
number = [1,2,3,4,5,6]
number.extend([7,8])
print(number)
输出结果为:[1,2,3,4,5,6,7,8]
insert()方法
insert()方法可以在列表的任意位置插入元素。insert()方法有两个参数,第一个参数代表在列表中的位置,第二个参数是在这个位置插入一个元素。例如:
numer = [1,2,3,4,5,6,7,8]
number.insert(1,0)
print(number)
结果是[1, 0, 1, 2, 3, 4, 5, 6, 7, 8]
number = [1,2,3,4,5,6,7,8]
number.insert(0,0)
print(number)
结果是[0, 1, 2, 3, 4, 5, 6, 7, 8]
注意:凡是顺序索引,Python均为 0 0 0开始。原因是计算机本身是二进制的,在二进制的世界里只有两个数: 0 0 0和 1 1 1,因为 0 0 0是二进制数中的第一个,所以 0 0 0就习惯用于表示第一个数。
从列表中获取元素
获取元素
索引值
交换元素的简便方法
name[1], name[3] = name[3], name[1]
从列表删除元素
remove()方法
使用remove()删除元素,并不需要知道列表中的具体位置,只需要知道该元素存在列表中就可以了。如果要删除的东西根本不在列表中,程序就会报错。
例如:
name = [1,2,3,4,5]
name.remove(4)
print(name)
结果是[1,2,3,5]
del语句
del是一个语句,不是一个列表的方法。示例如下:
name = [1,2,3,4,5]
del name[3]
print(name)
结果为[1,2,3,5]
del也可以删除整个列表,例如:
del name
这样name列表就被删除了。
pop()方法
pop()默认弹出最后一个元素,但是也可以指定某一位置上的元素,下面分别示例:
name = [1,2,3,4,5]
name.pop()
输出5
name = [1,2,3,4,5]
name.pop(2)
这时,弹出的就是3
列表分片
朴素版分片
如果希望每次可以取出多个元素,那么可以使用列表分片,例如:
name = ['apple','banana','peach','pear']
name[0:2]
输出结果为:[‘apple’,‘banana’]
这里注意一点,这里的索引是左闭右开的。也就是取不到2!
如果一直从开头开始取,或者一直取到结尾,可以简写。例如:
name = ['apple','banana','peach','pear']
print(name[:2])
print(name[1:])
print(name[:])
输出结果为:
['apple', 'banana']
['banana', 'peach', 'pear']
['apple', 'banana', 'peach', 'pear']
注意:列表分片就是建立原列表的一个拷贝(或者说副本),所以如果要对列表做修改,但同时还想保存原列表,那么分片非常方便。
进阶版分片
分片操作可以接收第三个参数,代表步长,在默认情况下,步长为1。如果将步长改成2,那么就是每前进两个元素才取一个出来,如果是负数的话,就倒着取。例如:
name = [0,1,2,3,4,5,6,7,8,9]
print(name[0:7:2])
print(name[5:1:-1])
输出结果为:
[0, 2, 4, 6]
[5, 4, 3, 2]
拷贝列表
我们用分片、赋值两种方式进行列表的拷贝,代码如下:
list1 = [1,3,2,9,7,8]
list2 = list1[:]
list3 = list1
然后我们进行排序试试
list1.sort()
print(list1)
print(list2)
print(list3)
结果为
[1, 2, 3, 7, 8, 9]
[1, 3, 2, 9, 7, 8]
[1, 2, 3, 7, 8, 9]
也就是说list3跟着list1变了
其实直接赋值就相当于C++中的引用操作,list1与list3指向的是同一个东西,而分片得到的列表是复制体,与之前列表毫无关联。
一些常用操作符
比较大小
从第一个元素开始比,直到决出胜负
加号
列表拼接
乘号
复制多次
成员关系
成员关系判断用in和not in实现
例如:
name = ['apple','banana','peach','pear']
'apple' in name
'pbc' in name
'banana' not in name
分别返回 True,False,False
对于列表套列表的情况,需要先进入一层列表才可以,例如:
name = ['banana',['apple','pineapple'],'peach','pear']
'apple' in name[1]
返回True
当然,也可以像C++的二维数组那样访问
name[1][0]
返回的是’apple’
其他方法和函数
len()函数
len()函数可以返回列表的长度,例如:
number = [1,3,7,6,9]
len(number)
返回5
count()方法
count()方法的作用是计算它的参数在列表中出现的次数,例如:
number = [1,1,2,3,5,8,1,13,21]
number.count(1)
这段程序的结果是3,因为1出现了3次
index()方法
index()方法返回参数在列表中第一次出现的位置,例如:
number = [1,1,2,3,5,8,1,13,21]
number.index(1)
这里返回的是0
除此之外,index()方法还存在两个参数,用于限定查找的范围,因此可以这样查找第二个目标在number列表中的位置,具体操作如下:
start = number.index(1) + 1
end = len(number)
number.index(1,start,end)
这里返回1
reverse()方法
reverse()方法就是将列表原地翻转一遍,例如:
number = [1,2,3,4,5,6,7,8,9]
number.reverse()
number
返回[9, 8, 7, 6, 5, 4, 3, 2, 1]
sort()方法
sort()方法是用指定的方式对列表的成员进行排序,默认不需要参数,从小到大排序。例如:
number = [8,9,3,5,2,6,10,1,0]
number.sort()
number
返回值为[0, 1, 2, 3, 5, 6, 8, 9, 10]
如果想从大到小排序,那么可以用list.sort(reverse=True)来实现,例如:
number = [8,9,3,5,2,6,10,1,0]
number.sort(reverse = True)
number
返回值为[10, 9, 8, 6, 5, 3, 2, 1, 0]