首页 文章 精选 留言 我的

精选列表

搜索[数据类型],共6340篇文章
优秀的个人博客,低调大师

Python 数据类型 list(2)

对list的操作 向list中插入一个元素 list.append(x) 在末尾增加 >>> all_users = ["hiekay","github"] >>> all_users.append("io") >>> all_users ['hiekay', 'github', 'io'] list.insert(i,x) : 可以在任何位置增加一个元素 list.insert(i,x),将新的元素x 插入到原list中的list[i]前面 如果i==len(list),意思是在后面追加,就等同于list.append(x) 实验: >>> all_users ['hiekay', 'github', 'io'] >>> all_users.insert("python") #list.insert(i,x),要求有两个参数,少了就报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: insert() takes exactly 2 arguments (1 given) >>> all_users.insert(0,"python") >>> all_users ['python', 'hiekay', 'github', 'io'] >>> all_users.insert(1,"http://") >>> all_users ['python', 'http://', 'hiekay', 'github', 'io'] >>> length = len(all_users) >>> length 5 >>> all_users.insert(length,"algorithm") >>> all_users ['python', 'http://', 'hiekay', 'github', 'io', 'algorithm'] 删除list中的元素 删除list元素的方法有两个 list.remove(x) x:元素 list.pop([i]) i: 元素下标 >>> all_users ['python', 'http://', 'hiekay', 'github', 'io', 'algorithm'] >>> all_users.remove("http://") >>> all_users #的确是把"http://"删除了 ['python', 'hiekay', 'github', 'io', 'algorithm'] >>> all_users.remove("tianchao") #原list中没有“tianchao”,要删除,就报错。 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list 在删除之前,先判断一下这个元素是不是在list中,在就删,不在就不删。 >>> all_users ['python', 'hiekay', 'github', 'io', 'algorithm'] >>> "python" in all_users #这里用in来判断一个元素是否在list中,在则返回True,否则返回False True >>> if "python" in all_users: ... all_users.remove("python") ... print all_users ... else: ... print "'python' is not in all_users" ... ['hiekay', 'github', 'io', 'algorithm'] #删除了"python"元素 >>> if "python" in all_users: ... all_users.remove("python") ... print all_users ... else: ... print "'python' is not in all_users" ... 'python' is not in all_users #因为已经删除了,所以就没有了。 list.pop([i])实验: >>> all_users ['hiekay', 'github', 'io', 'algorithm'] >>> all_users.pop() #list.pop([i]),圆括号里面是[i],表示这个序号是可选的 'algorithm' #如果不写,就如同这个操作,默认删除最后一个,并且将该结果返回 >>> all_users ['hiekay', 'github', 'io'] >>> all_users.pop(1) #指定删除编号为1的元素"github" 'github' >>> all_users ['hiekay', 'io'] >>> all_users.pop() 'io' >>> all_users #只有一个元素了,该元素编号是0 ['hiekay'] >>> all_users.pop(1) #但是非要删除编号为1的元素,结果报错。注意看报错信息 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range #删除索引超出范围,就是1不在list的编号范围之内 range(start,stop)生成数字list range(start, stop[, step])是一个内置函数。 这个函数可以创建一个数字元素组成的列表。 这个函数最常用于for循环(关于for循环,马上就要涉及到了) 函数的参数必须是整数,默认从0开始。返回值是类似[start, start + step, start + 2*step, ...]的列表。 step默认值是1。如果不写,就是按照此值。 如果step是正数,返回list的最最后的值不包含stop值,即start+istep这个值小于stop;如果step是负数,start+istep的值大于stop。 step不能等于零,如果等于零,就报错。 range(start,stop[,step])的含义: start:开始数值,默认为0,也就是如果不写这项,就是认为start=0 stop:结束的数值,必须要写的。 step:变化的步长,默认是1,也就是不写,就是认为步长为1。坚决不能为0 >>> range(9) #stop=9,别的都没有写,含义就是range(0,9,1) [0, 1, 2, 3, 4, 5, 6, 7, 8] #从0开始,步长为1,增加,直到小于9的那个数 >>> range(0,9) [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> range(0,9,1) [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> range(1,9) #start=1 [1, 2, 3, 4, 5, 6, 7, 8] >>> range(0,9,2) #step=2,每个元素等于start+i*step, [0, 2, 4, 6, 8] 仅仅解释一下range(0,9,2) 如果是从0开始,步长为1,可以写成range(9)的样子,但是,如果步长为2,写成range(9,2)的样子,计算机就有点糊涂了,它会认为start=9,stop=2。所以,在步长不为1的时候,切忌,要把start的值也写上。 start=0,step=2,stop=9.list中的第一个值是start=0,第二个值是start+1step=2(注意,这里是1,不是2,不要忘记,前面已经讲过,不论是list还是str,对元素进行编号的时候,都是从0开始的),第n个值就是start+(n-1)step。直到小于stop前的那个值。 实验: >>> range(-9) 我本来期望给我返回[0,-1,-2,-3,-4,-5,-6,-7,-8],我的期望能实现吗? 分析一下,这里start=0,step=1,stop=-9. 第一个值是0;第二个是start+1*step,将上面的数代入,应该是1,但是最后一个还是-9,显然出现问题了。但是,python在这里不报错,它返回的结果是: >>> range(-9) [] >>> range(0,-9) [] >>> range(0) [] 报错和返回结果,是两个含义,虽然返回的不是我们要的。应该如何修改呢? >>> range(0,-9,-1) [0, -1, -2, -3, -4, -5, -6, -7, -8] >>> range(0,-9,-2) [0, -2, -4, -6, -8] 有了这个内置函数,很多事情就简单了。比如: >>> range(0,100,2) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98] 实验: >>> pythoner = ["I","am","a","pythoner","I","am","learning","it","with","hiekay"] >>> pythoner ['I', 'am', 'a', 'pythoner', 'I', 'am', 'learning', 'it', 'with', 'hiekay'] >>> py_index = range(len(pythoner)) >>> py_index [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 排序 两个方法可以实现对list的排序: list.sort(cmp=None, key=None, reverse=False) sorted(iterable[, cmp[, key[, reverse]]]) 实验: >>> number = [1,4,6,2,9,7,3] >>> number.sort() >>> number [1, 2, 3, 4, 6, 7, 9] >>> number = [1,4,6,2,9,7,3] >>> number [1, 4, 6, 2, 9, 7, 3] >>> sorted(number) [1, 2, 3, 4, 6, 7, 9] >>> number = [1,4,6,2,9,7,3] >>> number [1, 4, 6, 2, 9, 7, 3] >>> number.sort(reverse=True) #开始实现倒序 >>> number [9, 7, 6, 4, 3, 2, 1] >>> number = [1,4,6,2,9,7,3] >>> number [1, 4, 6, 2, 9, 7, 3] >>> sorted(number,reverse=True) [9, 7, 6, 4, 3, 2, 1] 查看内置函数 假设有一个list,如何知道它所拥有的内置函数呢?请用help(),帮助我吧。 >>> help(list)

优秀的个人博客,低调大师

Python 数据类型 list(1)

定义 在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。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册