#-*- encoding: utf-8 -*-
'''
Created on 2013-1-7
@author:
'''
#列表是一组任意类型的值,按照一定顺序组合而成的。组成列表的值
#叫做元素(Elements)。每一个元素被标识一个索引,第一个索引也是0。列
#表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套。
a=1
b=10
arr = [a,b,"nsn","test"]
print arr
#修改变量的值并不影响列表的值
a=20
print 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
#insert
arr.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 #True
print "n" in arr #false
#列表和for循环
for i in arr:
print i
#加号操作符"+"将两个列表连接成一个列表
print arr + range(1,5)
#列表片段
print arr[1:5]
#只要在“[]”内包含冒号“:”,所取的片断依然是列表,否则,就是元素的原始类型
print type(arr[:]) #list
print type(arr[1:]) #list
print type(arr[-1]) #int
#和字符串不一样,列表的元素是可更改的,这意味着我们可以修改、添加
#或删除列表的元素值。
arr[0] = "compary"
print arr
#赋空
arr[1:3] = []
print arr
#关键字del删除列表中的元素
del arr[1]
print arr
del 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 temp
delelement(arr4); #2,3,4
print arr4 #nsn,2,3,4
#列表嵌套
#嵌套列表可以代表矩阵
list1 = ["this" ,"is", "qiantao", range(1,5)]
print list1
print len(list1) #4
print list1[0] #this
print list1[3][1] #2
#一个是将字符串分割成单词列表。空格默认的是单词的边界
import string
str1 = "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
python 学习列表
最新推荐文章于 2017-06-01 16:32:36 发布