今天,学习一下 列表:打了激素的数组
1.为什么说列表是打了激素的数组呢?
因为数组里面的元素必须为同一个类型的【相当于一个铅笔盒,里面只能装铅笔】,而列表里面的元素可以是同一个类型,
一个可以不同类型,整型,浮点型,字符串,对象他都可以,这就过分了【就像个盒子一样,里面什么都能装】
2.如何创建一个列表呢?【列表的标志性东西就是中括号‘[ ]’】
>>> empty = [] #创建空列表
>>> men = ['king','joke','小甲鱼','jone'] #同类型,普通列表
>>> women = ['美羊羊','红太狼',567] #不同类型的,混合列表
>>> menber = ['喜羊羊','美羊羊','红太狼',men] #有对象在里面的,混合列表
>>> men
['king', 'joke', '小甲鱼', 'jone']
>>> women
['美羊羊', '红太狼', 567]
>>> menber
['喜羊羊', '美羊羊', '红太狼', ['king', 'joke', '小甲鱼', 'jone']]
3.如何索引列表里面的元素?【通过下标索引,注意:下标从0开始】
3.1没对象的:
>>> women[0]
'美羊羊'
3.2有对象的:而且是索引对象里面的函数
>>> menber[3][0]
'king'
和访问二维数组一样
4.向列表里面添加元素【使用列表的方法】
方法: append 方法:insert 方法:extend
参数:要添加的元素(一个) 参数:下标,元素 参数:可迭代对象
功能:添加到到列表的最后 功能:在下标位置插入元素 功能:在后面添加可迭代对象的元素
>>> men.append('jack')
>>> men
['king', 'joke', '小甲鱼', 'jone', 'jack']
>>> men.insert(1,'jam')
>>> men
['king', 'jam', 'joke', '小甲鱼', 'jone', 'jack']
>>> men.extend(['小鱿鱼','小虾米'])
>>> men
['king', 'jam', 'joke', '小甲鱼', 'jone', 'jack', '小鱿鱼', '小虾米']
5.从列表中删除元素
方法:remove 语句:del 方法:pop
参数:一个列表元素 参数: 下标
返回:无 返回:被删除的元素
功能:删除它 功能:删除并返回
>>> men.remove('小鱿鱼')
>>> men
['king', 'jam', 'joke', '小甲鱼', 'jone', 'jack', '小虾米']
>>> del men[1]
>>> men
['king', 'joke', '小甲鱼', 'jone', 'jack', '小虾米']
>>> men.pop()
'小虾米'
>>> men
['king', 'joke', '小甲鱼', 'jone','jack']
>>> men.pop(4)
'jack'
>>> men
['king', 'joke', '小甲鱼', 'jone']
5.列表的分片【用 分号‘ :’】
注意:列表分片其实是拷贝出来的新列表,原列表并没有改变
>>> men[1:3]
['joke', '小甲鱼']
>>> men1 = men[1:3]
>>> men1
['joke', '小甲鱼']
>>> men
['king', 'joke', '小甲鱼', 'jone']
可以简写:不写默认[0:最后],亦可以写一个[ 0 :n] or [n : 最后] ,自己试试
6.列表的一些常用操作符
6.1 比较运算操作符
6.2 关系操作符
6.3 拼接,重复
6.4 成员关系运算符 【in notin】
>>> list1 = [123]
>>> list2 = [456]
>>> list1 > list2 #比较,默认是首元素进行比较
False
>>> list3 = [123,456]
>>> list4 = [456,123]
>>> list3 > list4 #比较,默认是首元素进行比较
False
>>> (list1 < list2) and (list3 < list4) #关系运算符
True
>>> list5 = list1 + list2 #拼接,加号左右两边类型必须一致
>>> list5
[123, 456]
>>> list5 = list1 + '131' #这里不一致就报错了
Traceback (most recent call last):
File "<pyshell#113>", line 1, in <module>
list5 = list1 + '131'
TypeError: can only concatenate list (not "str") to list
>>> list1*3 #重复
[123, 123, 123]
>>> 123 in list1 #成员关系运算符
True
这里的只要掌握了,后面的字符串和元组都是差不多,学习起来就会很很简单的了
上面也说到,当列表里面有对象【还有一个列表】时,用成员操作符会擦出怎样的火花呢?
马上来试试:
>>> str6 = [123,456,['king','joke']]
>>> 123 in str6
True
>>> 'king' in str6
False
“king” 这时候就诉苦了,明明我在里面的,为什么要这样对我,返回个False。原因很简单,因为“king”并不是str6里面的
元素,而是str6元素里面的元素。所以说我们得这样做:定位到“king”属于得对象【列表】
>>> 'king' in str6[2]
True
7.列表的好伙伴
dir(list)就可以查看到可以对列表进行哪些操作了
>>> 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'
在后面的哪些好像很多前面都说过了,好像append ,insert,extend.......,下面还是说一下常用的list内置方法:
方法:count 方法:index 方法:reverse
参数:元素 参数:元素,start[,0],stop[,最后] 参数:
返回:出现的次数 返回:在列表的第一次出现的位置 返回:
功能:原地翻转
方法:sort
参数:fanc,reverse = Flase
返回:
功能:排序
>>> str7 = [1,2,5,8,3,6,8,6,3,2,8,4,5,6]
>>> str7.count(5)
2
>>> str7.index(3)
4
>>> str7.index(3,5)
8
>>> str7.reverse()
>>> str7
[6, 5, 4, 8, 2, 3, 6, 8, 6, 3, 8, 5, 2, 1]
>>> str7.sort()
>>> str7
[1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 8, 8, 8]
>>> str7.sort(reverse = True)
>>> str7
[8, 8, 8, 6, 6, 6, 5, 5, 4, 3, 3, 2, 2, 1]
如果有兴趣的话,自己可以用 help(list.方法) 来看看这些到底时怎么用的,非常建议用这个去试试。
今天的记录就到这里,这些东西记住了,后面的字符串和元组就容易了。嘻嘻,就这样吧,88