首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python 系统学习札记(四)-list

2013-03-06 
python 系统学习笔记(四)--list1、列表列表是一种用于保存有序元素集合的数据结构,即你可以在列表中存储元

python 系统学习笔记(四)--list

1、列表

列表是一种用于保存有序元素集合的数据结构,即你可以在列表中存储元素序列。考虑一个购物清单,上面有你需要购买的物品列表,只不过你可能希望以分号分隔他们而到Python变成了逗号。

列表元素被包含在方括号中,这样Python就会才会明白你指定的是一个列表。一点列表创建完毕,我们可以对其元素进行添加,删除和搜索。正是因为可以执行添加和删除操作,我们将列表称作可变类型,即这种类型可以被修改。

对象和类的快速简介

列表是使用对象和类的一个例子。当我们对变量i赋值时,例如赋值5,这相当于创建一个Int类(类型)的对象(实例),你可以参看help(int)来更好的理解它。

一个类同样可以拥有方法,即函数,而他们只能应用与这个类。并且只有当你拥有一个类的对象时才能使用这些功能。例如,Python为列表提供了一个append方法允许我们将元素添加到列表的表尾。如,mylist.append(‘an item’)将字符串添加到列表mylist的尾部。注意,要用点号访问对象方法。

一个类还可以拥有字段,而字段只不过是专门应用与一个类的变量而已。当你拥有对应类的对象时就能使用这些变量了。字段同样利用点号访问,如,mylist.field。

1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
a = ["I","you","he","she"]      #元素可为任何类型。

下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元素,len-1最后一个元素
取list的元素数量                
len(list)   #list的长度。实际该方法是调用了此对象的__len__(self)方法。 

创建连续的list
L = range(1,5)      #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]

list的方法
L.append(var)   #追加元素
L.insert(index,var)
L.pop(var)      #返回最后一个元素,并从list中删除之
L.remove(var)   #删除第一次出现的该元素
L.count(var)    #该元素在列表中出现的个数
L.index(var)    #该元素的位置,无则抛异常 
L.extend(list)  #追加list,即合并list到L上
L.sort()        #排序
L.reverse()     #倒序
list 操作符:,+,*,关键字del
a[1:]       #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4       #为[2,2,2,2]
del L[1]    #删除指定下标的元素
del L[1:3]  #删除指定下标范围的元素
list的复制
L1 = L      #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
L1 = L[:]   #L1为L的克隆,即另一个拷贝。
        
list comprehension
   [ <expr1> for k in L if <expr2> ]

定义list

sum=0a=[1,2,3,4]def uniq(*Nums): global sum for num in Nums: sum=num+sumuniq(*a)print sum

提示过程,传入元素为list的list  然后遍历list 进行合并......

3楼ychw3652小时前
[code=python]n#以上的空间开销会增加 可以用下面这段代码 替换上面去重部分 我就不重复写了nList=[1,3,5,1,7,4,3,4]nif List:n List.sort() #由于我们会输入有序的去掉此过程n last=List[-1]n for i in range(len(List)-2,-1,-1):n if last==List[i]:n del List[i]n else:n last=List[i]nprint Listnn[/code]
2楼ychw3652小时前
[code=python]n#顺序结构式 ninput1=[1,3,5,1,7]ninput2=[2,3,8]ninput3=[4,3]ninputs=[input1,input2,input3]nprint inputsnprint len(inputs)nprint type(inputs[1])ntmp=[]nfor index in range(len(inputs)):n print indexn tmp.extend(inputs[index])nprint tmpntmp.sort()nprint tmpntmp = [elem*2 for elem in tmp if elem*2<11]nprint tmpnnoutput=[]nfor elem in tmp:n if(elem in output):n passn else:n output.append(elem)n nprint outputnn#函数式n n#定义空output 保存输出noutput=[]ndef uniq(*list):n print "输入数目:",len(list)n print "输入类型:" ,type(list[0])n print "打印输入:",listn #定义空list 用来保存临时数据n tmp=[]n #所有list 连接到一起n for elem in list:n tmp.extend(elem)n tmp.sort()n tmp=[elem*2 for elem in tmp if elem*2<11]n print "打印乘2不大于10但未去重数据:" ,tmpn global outputn for elem in tmp:n if(elem in output):n passn else:n output.append(elem)nnuniq(input1,input2,input3)nprint outputn n[/code]
1楼ychw365昨天 10:19
[code=python]nnsum=0ndef fsum(*Nums):n global sumn for num in Nums:n sum=num+sumnfsum(1,2,3)nprint sumnfsum(1,2,3,4,5,6)nprint sumn[/code]nn把上面的sample 修改了一下 有人和我说看不太清晰

热点排行