python 学习列表

来源:互联网 发布:九云图软件下载 编辑:程序博客网 时间:2024/06/03 09:25
#-*- encoding: utf-8 -*-'''Created on 2013-1-7@author: '''#列表是一组任意类型的值,按照一定顺序组合而成的。组成列表的值#叫做元素(Elements)。每一个元素被标识一个索引,第一个索引也是0。列#表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套。a=1b=10arr = [a,b,"nsn","test"]print arr#修改变量的值并不影响列表的值a=20print arr#索引也可以是一个负数,那么列表的最后一个元素的索引是-1,倒数#第二个的索引是-2,依此类推:print arr[0],arr[-1] #1,test#包含连续整数的列表是很常见的,因此Python提供一种简单的方法创建他们print range(1,5) #1,2,3,4#3个参数的range函数,产生一个在数学上成为等差数列的列表。这个#例子产生一个从1到10,步长为2的列表print range(1,10,2)#1,3,5,7,9#append在列表的尾部追加元素,参数是插入元素的值:arr.append("tieto")print arr#insertarr.insert(2, "hha")print arr#方法extend合并两个列表为一个:arr.extend(range(1,5))print arr#方法index取得元素的索引值:print arr.index("nsn")#方法remove从列表中删除第一次出现的值arr.remove(1)print arr#方法pop删除最后一个值,然后返回这个值:print arr.pop()#函数len返回列表的长度print len(arr)#in也可以测试字符串中是否包含某个字符:print "nsn" in arr #Trueprint "n" in arr #false#列表和for循环for i in arr:    print i#加号操作符"+"将两个列表连接成一个列表print arr + range(1,5)  #列表片段print arr[1:5] #只要在“[]”内包含冒号“:”,所取的片断依然是列表,否则,就是元素的原始类型 print type(arr[:]) #listprint type(arr[1:]) #listprint type(arr[-1]) #int#和字符串不一样,列表的元素是可更改的,这意味着我们可以修改、添加#或删除列表的元素值。arr[0] = "compary"print arr#赋空arr[1:3] = []print arr#关键字del删除列表中的元素del arr[1]print arrdel arr[0:2]print arr#创建一个字符串,但是只创建一个列表a = "abc"b = "abc"print id(a), id(b) #值是相同的arr1 = range(1,5)arr2 = range(1,5)print id(arr1), id(arr2) #值不相同#因为变量指向内存中的值,如果我们将一个变量赋值给另一个变量,那末这两个变量指向同一个对象。arr3=arr2#如果要修改列表,但是要保留原来列表的一份拷贝,就需要列表自我复#制,这过程叫做克隆。克隆的结果是产生两个值一样,但却有不同标识符#的列表。克隆的方法是利用列表的片断操作符:arr4 = arr2[:] #克隆列表arr4[0] = "nsn";print arr4 print arr2 #1,2,3,4#传递列表参数实际上是传递列表的别名,而不是列表的拷贝。#如果防止列表变量在函数中被更改,我们可以利用前面讲的克隆列def delelement(list):    temp = list[:]    del temp[0]    print tempdelelement(arr4); #2,3,4print arr4    #nsn,2,3,4#列表嵌套#嵌套列表可以代表矩阵list1 = ["this" ,"is", "qiantao", range(1,5)]print list1print len(list1) #4print list1[0] #thisprint list1[3][1]  #2#一个是将字符串分割成单词列表。空格默认的是单词的边界import stringstr1 = "this is test"print string.split(str1)#['this', 'is', 'test']#函数jion的功能和split正好相反,它是将列表连接成字符串。str2 = string.join(string.split(str1))print str2 #this is test#列表映射list1 = ["this", "is", "test"][i + "s" for i in list1]print list1