您现在的位置是:首页 > 文章详情

Python 数据类型 list(1)

日期:2018-10-16点击:323

定义

在python中,用方括号表示一个list,[ ]
在方括号里面,可以是int,也可以是str类型的数据,甚至也能够是True/False这种布尔值。看下面的例子,特别注意阅读注释。

>>> a=[] #定义了一个变量a,它是list类型,并且是空的。 >>> type(a) <type 'list'> #用内置函数type()查看变量a的类型,为list >>> bool(a) #用内置函数bool()看看list类型的变量a的布尔值,因为是空的,所以为False False >>> print a #打印list类型的变量a [] 

不能总玩空的,来点实的吧。

>>> a=['2',3,'hiekay.github.io'] >>> a ['2', 3, 'hiekay.github.io'] >>> type(a) <type 'list'> >>> bool(a) True >>> print a ['2', 3, 'hiekay.github.io'] 

用上述方法,定义一个list类型的变量和数据。

list索引

在list中,是以元素为单位,不是以字符为单位进行索引了。看例子就明白了。

>>> a ['2', 3, 'hiekay.github.io'] >>> a[0] #索引序号也是从0开始 '2' >>> a[1] 3 >>> [2] [2] >>> a[:2] #跟str中的类似,切片的范围是:包含开始位置,到结束位置之前 ['2', 3] #不包含结束位置 >>> a[1:] [3, 'hiekay.github.io'] >>> a[-1] #负数编号从右边开始 'hiekay.github.io' >>> a[-2] 3 >>> a[:] ['2', 3, 'hiekay.github.io'] 

对list的操作

追加元素

即将新的元素x追加到list的尾部。

>>> a = ["good","python","I"] >>> a ['good', 'python', 'I'] >>> a.append("like") #向list中添加str类型"like" >>> a ['good', 'python', 'I', 'like'] >>> a.append(100) #向list中添加int类型100 >>> a ['good', 'python', 'I', 'like', 100] 

list.append(x)等效于:a[len(a):]=[x]

>>> a ['good', 'python', 'I', 'like', 100] >>> a[len(a):]=[3] #len(a),即得到list的长度,这个长度是指list中的元素个数。 >>> a ['good', 'python', 'I', 'like', 100, 3] >>> len(a) 6 >>> a[6:]=['xxoo'] >>> a ['good', 'python', 'I', 'like', 100, 3, 'xxoo'] 

list的长度

len(),这个是用来获取list,str等类型的数据长度的
len(x),对于list一样适用
得到的是list中元素个数
返回值是int类型

>>> name = 'yeashape' >>> len(name) #str的长度,是字符的个数 8 >>> a=[1,2,'a','b'] #list的长度,是元素的个数 >>> len(a) 4 >>> b=['yeashape'] >>> len(b) 1 

合并list

list.extend(L)
la[len(la):]=lb

>>> la = [1, 2, 3] [1, 2, 3] >>> lb = ['hiekay', 'python'] ['hiekay', 'python'] >>> la.extend(lb) >>> la [1, 2, 3, 'hiekay', 'python'] >>> lb ['hiekay', 'python'] 

上面的例子,显示了如何将两个list,一个是la,另外一个lb,将lb追加到la的后面,也就是把lb中的所有元素加入到la中,即让la扩容。
实验:

>>> la = [1,2,3] >>> b = "abc" >>> la.extend(b) >>> la [1, 2, 3, 'a', 'b', 'c'] >>> c = 5 >>> la.extend(c) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable 

从上面的实验中,extend的对象是一个list,如果extend(str)的时候,则python会先把它按照字符为单位转化为list再追加到已知list。
如果extend的对象是数值型,则报错.

  • la[len(la):]=lb
>>> la [1, 2, 3, 'a', 'b', 'c'] >>> lb ['hiekay', 'python'] >>> la[len(la):]=lb >>> la [1, 2, 3, 'a', 'b', 'c', 'hiekay', 'python'] 

list.extend(L) 等效于 list[len(list):] = L,L是待并入的list

一个list函数list.append(),这里的extend函数也是将另外的元素(只不过这个元素是列表)增加到一个已知列表中,那么两者有什么不一样呢?看下面例子:

>>> lst = [1,2,3] >>> lst.append(["hiekay","github"]) >>> lst [1, 2, 3, ['hiekay', 'github']] #append的结果 >>> len(lst) 4 >>> lst2 = [1,2,3] >>> lst2.extend(["hiekay","github"]) >>> lst2 [1, 2, 3, 'hiekay', 'github'] #extend的结果 >>> len(lst2) 5 

append是整建制地追加,extend是个体化扩编。

list中某元素的个数

list.count(x)
上面的len(L),可得到list的长度,也就是list中有多少个元素。python的list还有一个操作,就是数一数某个元素在该list中出现多少次,也就是某个元素有多少个。

>>> la = [1,2,1,1,3] >>> la.count(1) 3 >>> la.append('a') >>> la.append('a') >>> la [1, 2, 1, 1, 3, 'a', 'a'] >>> la.count('a') 2 >>> la.count(2) 1 >>> la.count(5) #NOTE:la中没有5,但是如果用这种方法找,不报错,返回的是数字0 0 

元素在list中的位置

L.index(x)
可以将list中的元素,从左向右依次从0开始编号,建立索引(如果从右向左,就从-1开始依次编号),通过索引能够提取出某个元素,或者某几个元素。就是如这样做:

>>> la [1, 2, 3, 'a', 'b', 'c', 'hiekay', 'python'] >>> la[2] 3 >>> la[2:5] [3, 'a', 'b'] >>> la[:7] [1, 2, 3, 'a', 'b', 'c', 'hiekay'] 

如果考虑反过来的情况,能不能通过某个元素,找到它在list中的编号呢?

>>> la [1, 2, 3, 'a', 'b', 'c', 'hiekay', 'python'] >>> la.index(3) 2 >>> la.index('a') 3 >>> la.index(1) 0 >>> la.index('qi') #如果不存在,就报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 'qi' is not in list >>> la.index('hiekay') 6 

list.index(x),x是list中的一个元素,这样就能够检索到该元素在list中的位置了。这才是真正的索引,注意那个英文单词index。

原文链接:https://yq.aliyun.com/articles/659001
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章