Python容器Containers

来源:互联网 发布:淘宝超级店长使用方法 编辑:程序博客网 时间:2024/06/15 20:02


Python中的容器:列表(list)、字典(dictionaries)、集合(sets)、元组(tuple)

列表List:

列表就是python中的数组,但是列表长度可变,且能包含不同类型元素

切片Slicing:为了一次性获取列表中的元素

循环Loops:

1、普通循环

2、如果想要在循环体内访问每个元素的指针,使用内置的enumerate函数

列表推导List comprehensions:

注:

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

#---------------list------------------------list = [2,4,5,6,7]print  list[2:]   #slicing   [5, 6, 7]print list[:-1]  #to the last-1list.append('pig')for name in list:   #loop1    print  name       # 2,4,5,6,7list.pop()  #remove the lastfor idx,name in enumerate(list):  #loop2  eumerate()    print "%d : %s" %(idx+1,name)print list[-1]   #count from end  7#list comprehensionssquares1 = [x**2 for x in list]squares2 = [x**2 for x in list if x%2==0]  #conditionsprint squares1," ",squares2


字典Dictionaries:

字典用来存储(键,值)对,和java中的Map差不多

循环loops:

1、在字典中,用键来迭代更加容易

2、如果要访问键和对应的值,使用iteritems方法

字典推导Dictionary comprehensions:

注:

['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']

#------------------------dictionary----------------dic = {'cat':4,'people':2,'dog':4}print dic['cat']  #4print 'people' in dic  #trueprint dic.get('monkey','N/A') #get element monkey with default  N/Adel dic['dog']  #removefor key in dic:  #get from key    print  dic[key]   #4,2,4for key,value in dic.iteritems():   #itreitems    print key,value#comprehensionsto_square = {x: x**2 for x in dic.values()}print to_square


集合Sets:

集合是独立不同个体的无序集合
循环loops:
集合推导Set comprehensions:
['__and__', '__class__', '__cmp__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']

#------------------------sets---------------------aniamls = {'cat','dog','pig'}print 'cat' in aniamls #trueaniamls.add('fish')print len(aniamls)aniamls.remove('dog') #remove#loop1for idx,aniaml in enumerate(aniamls): #cannt use animals{can consider the order}    print  idx,aniamlnums = { x for x in enumerate(aniamls)}  #comprehensionprint nums

元组Tuples:

元组是一个值的有序列表(不可改变),但是元组可以再字典中用作键,还可以作为集合的元素
注:
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
#---------------------------tuples---------------------
d = {(x,x+1):x for x in range(10)}  #use dic create tuples keysprint dprint type(d)  #dictuple =(5,6)print type(tuple)#tupleprint d[tuple],d[(2,3)]



原创粉丝点击