列表——打了激素的数组
0.列表分类
1.添加元素
2.获取元素
3.删除元素
4.列表切片
5.列表常规操作
6.列表内置函数
7.拷贝与赋值
普通列表:menber = [ ‘小甲鱼’,‘小布丁’]
混合列表:member = [‘小甲鱼’,520,3.14159,[1,2,3]]
空列表: member = [ ]
member = ['金毛','柴犬','哈士奇','杜宾']
member.append('藏獒')
>>>member #输出 ['金毛', '柴犬', '哈士奇', '杜宾', '藏獒']
member.extend(['泰迪','拉布拉多'])
>>> member
#输出 ['金毛', '柴犬', '哈士奇', '杜宾', '藏獒', '泰迪', '拉布拉多']
#如果member.extend('XX')会报错,因为extend()的参数是列表,即往列表里添加列表
member.insert(0,'中华田园犬')
>>> member
#输出['中华田园犬', '金毛', '柴犬', '哈士奇', '杜宾', '藏獒', '泰迪', '拉布拉多']
# insert()函数有两个参数,第一个代表插入位置,第二个代表插入元素
在获取元素上,列表与数组相似,可以利用索引(index),从列表中获取元素。
用上个问题举例:
member[2] 输出:‘柴犬’
member[5] 输出:‘藏獒’
1.remove (不需要知道元素位置,知道元素名即可)
2.del (del语句,需要知道元素位置,不需要知道元素名)
3.pop (python中列表与栈相似,pop可以理解为弹栈操作)
member = ['中华田园犬', '金毛', '柴犬', '哈士奇', '杜宾', '藏獒', '泰迪', '拉布拉多']
member.remove('泰迪')
>>>member
#输出 ['中华田园犬', '金毛', '柴犬', '哈士奇', '杜宾', '藏獒', '拉布拉多']
del member[0]
>>>member
#输出 ['金毛', '柴犬', '哈士奇', '杜宾', '藏獒', '拉布拉多']
>>> member
['金毛', '柴犬', '哈士奇', '杜宾', '藏獒', '拉布拉多']
>>> member.pop(4)
'藏獒'
>>> menber
#输出 ['金毛', '柴犬', '哈士奇', '杜宾', '拉布拉多']
member.pop()
'拉布拉多'
#输出 ['金毛', '柴犬', '哈士奇', '杜宾']
所谓列表切片(slice),就是在列表中一次性获取多个元素。
>>> member = [1,2,3,4,5,6]
>>> member
[1, 2, 3, 4, 5, 6]
>>> member[1:3]#返回member[1],member[2]
[2, 3]
>>> member[:3]#返回从头到member[2]
[1, 2, 3]
>>> member[1:]#返回从member[1]到结尾
[2, 3, 4, 5, 6]
>>> member[:]#copy整个member列表
[1, 2, 3, 4, 5, 6]
#拷贝之后,原列表不受任何影响
#列表比较大小
>>> list1=[123,456]
>>> list2=[234,456]
>>> list1 > list2
False
>>> list1 < list2
True
#列表比较遵循短路逻辑,即先比较第一个元素,如果list1中第一个元素大于list2中第一个元素,即list1 > list2,返回False,后面的不再看
#列表中的逻辑操作
>>> list3=[123,456]
>>> (list1 == list3) and (list2 > list1)
True
#连接
>>> list4 = list2 + list3
>>> list4
[234, 456, 123, 456]
>>> list4 + 456
#报错:Traceback (most recent call last):
# File "", line 1, in
# list4 + 456
#TypeError: can only concatenate list (not "int") to list
只有数据类型相同,才能进行相加的操作!
#重复
>>> list3 *= 3
>>> list3
[123, 456, 123, 456, 123, 456]
#成员关系
>>> list5 = [123,456,789,['小甲鱼','小鱼儿'],'面对疾风吧']
>>> 123 in list5
True
>>> '面对疾风吧' in list5
True
>>> '小甲鱼' in list5
False #in只能判断一层列表
>>> list5[3][0]
'小甲鱼' #类似二维数组
列表中有很多的内置函数,这里简单介绍几个。
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>>
1.count——元素在列表中出现的次数
>>> list = [1,22,333,147,258,333,456]
>>> list.count(333)
2 #333在列表中出现了2次
2.index——查找元素索引
>>> list = [1,22,333,147,258,333,456]
>>> list.index(147)
3 #147的位置下标3
>>> list.index(333,3,6)
5 #index ('元素',start,stop) 三个参数,可以明确搜索范围
3.reverse——乾坤大挪移(列表逆置)
>>> list = [1,22,333,147,258,333,456]
>>> list.reverse()
>>> list
[456, 333, 258, 147, 333, 22, 1]
4.sort——排队
>>> list.sort()
>>> list
[1, 22, 147, 258, 333, 333, 456] #从大到小排队
>>> list.sort(reverse=True)
>>> list
[456, 333, 333, 258, 147, 22, 1] #从大到小排队
list.sort()默认为list.sort(reverse = False)
sort(func , key , reverse) #sort()的三个参数
>>> list1 = [1,2,3,4]
>>> list2 = list1[:]
>>> list3 = list1
>>> list2
[1, 2, 3, 4]
>>> list3
[1, 2, 3, 4]
>>> list1.append(5)
>>> list2
[1, 2, 3, 4]
>>> list3
>>>[1, 2, 3, 4, 5]
附一张教程图解,可能比较好理解。