【python之路8】python基本数据类型(二) list tuple dict
基本数据类型
4、列表(list)
创建列表
name_list = ['zhao','qian','sun','li']
基本操作
- 索引
print(name_list[0]) #返回zhao print(name_list[1]) #返回qian
- 切片
print(name_list[0:2]) #返回['zhao', 'qian']
- 长度
print len(name_list) #返回4
- 循环
for i in name_list: print i
- 删除一个索引元素
del name_list[1] #删除索引为1的元素 del name_list[1:3] #删除切片1-2的元素
- 包含in
IsContain = 'sun' in name_list
基本用法总结:
name_list.append('aa') #name_list列表追加一个元素,name_list变为['zhao', 'qian', 'sun', 'li', 'aa'] print name_list.count("li") #返回1,统计name_list中,值为li的个数 name_list.extend(['aa','bb','cc']) #name_list列表追加一个列表,name_list变为['zhao', 'qian', 'sun', 'li', 'aa', 'bb', 'cc'],参数必须为可迭代的 print name_list.index('sun',0,3) #在索引0-3之间查找sun,返回索引,第2、3个参数可以省略 name_list.insert(3,'wang') #在第3个索引前面插入wang,name_list变为['zhao', 'qian', 'sun', 'wang', 'li'] name_list.pop(2) #删除索引为2的项目,如果省略则删除最后一项 name_list.remove('sun') #移除name_list中第一个出现的sun,如果sun不存在则抛出ValueError异常 name_list.reverse() #将name_list中的元素顺序翻转,结果['li', 'sun', 'qian', 'zhao'] sort() #等待补充
其他详细功能及代码:
class list(object): """ list() -> new empty list list(iterable) -> new list initialized from iterable's items """ def append(self, p_object): # real signature unknown; restored from __doc__ """ L.append(object) -- append object to end 添加一个对象到最后""" pass def count(self, value): # real signature unknown; restored from __doc__ """ L.count(value) -> integer -- return number of occurrences of value 返回出现值的数量""" return 0 def extend(self, iterable): # real signature unknown; restored from __doc__ """ L.extend(iterable) -- extend list by appending elements from the iterable 通过增加可迭代的元素扩展列表""" pass def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__ """ L.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present. 返回第一个值的索引 如果值不存在则抛出ValueError异常 """ return 0 def insert(self, index, p_object): # real signature unknown; restored from __doc__ """ L.insert(index, object) -- insert object before index 在参数index的前面插入对象""" pass def pop(self, index=None): # real signature unknown; restored from __doc__ """ L.pop([index]) -> item -- remove and return item at index (default last). Raises IndexError if list is empty or index is out of range. 按照index索引删除并返回项目(默认最后一个) 如果列表为空或不在范围内,抛出IndexError异常 """ pass def remove(self, value): # real signature unknown; restored from __doc__ """ L.remove(value) -- remove first occurrence of value. Raises ValueError if the value is not present. 移除第一个出现的值, 如果Value值没出现那么抛出ValueError异常 """ pass def reverse(self): # real signature unknown; restored from __doc__ """ L.reverse() -- reverse *IN PLACE* 位置反序排列""" pass def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__ """ L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*; cmp(x, y) -> -1, 0, 1 位置稳定正序排序 """ pass def __add__(self, y): # real signature unknown; restored from __doc__ """ x.__add__(y) <==> x+y """ pass def __contains__(self, y): # real signature unknown; restored from __doc__ """ x.__contains__(y) <==> y in x """ pass def __delitem__(self, y): # real signature unknown; restored from __doc__ """ x.__delitem__(y) <==> del x[y] """ pass def __delslice__(self, i, j): # real signature unknown; restored from __doc__ """ x.__delslice__(i, j) <==> del x[i:j] Use of negative indices is not supported. """ pass def __eq__(self, y): # real signature unknown; restored from __doc__ """ x.__eq__(y) <==> x==y """ pass def __getattribute__(self, name): # real signature unknown; restored from __doc__ """ x.__getattribute__('name') <==> x.name """ pass def __getitem__(self, y): # real signature unknown; restored from __doc__ """ x.__getitem__(y) <==> x[y] """ pass def __getslice__(self, i, j): # real signature unknown; restored from __doc__ """ x.__getslice__(i, j) <==> x[i:j] Use of negative indices is not supported. """ pass def __ge__(self, y): # real signature unknown; restored from __doc__ """ x.__ge__(y) <==> x>=y """ pass def __gt__(self, y): # real signature unknown; restored from __doc__ """ x.__gt__(y) <==> x>y """ pass def __iadd__(self, y): # real signature unknown; restored from __doc__ """ x.__iadd__(y) <==> x+=y """ pass def __imul__(self, y): # real signature unknown; restored from __doc__ """ x.__imul__(y) <==> x*=y """ pass def __init__(self, seq=()): # known special case of list.__init__ """ list() -> new empty list list(iterable) -> new list initialized from iterable's items # (copied from class doc) """ pass def __iter__(self): # real signature unknown; restored from __doc__ """ x.__iter__() <==> iter(x) """ pass def __len__(self): # real signature unknown; restored from __doc__ """ x.__len__() <==> len(x) """ pass def __le__(self, y): # real signature unknown; restored from __doc__ """ x.__le__(y) <==> x<=y """ pass def __lt__(self, y): # real signature unknown; restored from __doc__ """ x.__lt__(y) <==> x<y """ pass def __mul__(self, n): # real signature unknown; restored from __doc__ """ x.__mul__(n) <==> x*n """ pass @staticmethod # known case of __new__ def __new__(S, *more): # real signature unknown; restored from __doc__ """ T.__new__(S, ...) -> a new object with type S, a subtype of T """ pass def __ne__(self, y): # real signature unknown; restored from __doc__ """ x.__ne__(y) <==> x!=y """ pass def __repr__(self): # real signature unknown; restored from __doc__ """ x.__repr__() <==> repr(x) """ pass def __reversed__(self): # real signature unknown; restored from __doc__ """ L.__reversed__() -- return a reverse iterator over the list """ pass def __rmul__(self, n): # real signature unknown; restored from __doc__ """ x.__rmul__(n) <==> n*x """ pass def __setitem__(self, i, y): # real signature unknown; restored from __doc__ """ x.__setitem__(i, y) <==> x[i]=y """ pass def __setslice__(self, i, j, y): # real signature unknown; restored from __doc__ """ x.__setslice__(i, j, y) <==> x[i:j]=y Use of negative indices is not supported. """ pass def __sizeof__(self): # real signature unknown; restored from __doc__ """ L.__sizeof__() -- size of L in memory, in bytes """ pass __hash__ = None
5、元组(tuple)
元组与列表基本一样,区别是列表可以支持增删改查,而元组不支持增删改
创建元组
name_tuple = ('zhao','qian','sun','li') #单个元素tuple定义 name_tuple1 = ('zhao',)
基本操作与列表一样
- 索引
- 切片
- 循环
- 长度
- 包含
基本用法总结
print name_tuple.count("li") #返回1,统计name_tuple中,值为li的个数 print name_tuple.index('sun',0,3) #在索引0-3之间查找sun,返回索引,第2、3个参数可以省略
其他详细功能及代码
class tuple(object): """ tuple() -> empty tuple tuple(iterable) -> tuple initialized from iterable's items If the argument is a tuple, the return value is the same object. """ def count(self, value): # real signature unknown; restored from __doc__ """ T.count(value) -> integer -- return number of occurrences of value """ return 0 def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__ """ T.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present. """ return 0 def __add__(self, y): # real signature unknown; restored from __doc__ """ x.__add__(y) <==> x+y """ pass def __contains__(self, y): # real signature unknown; restored from __doc__ """ x.__contains__(y) <==> y in x """ pass def __eq__(self, y): # real signature unknown; restored from __doc__ """ x.__eq__(y) <==> x==y """ pass def __getattribute__(self, name): # real signature unknown; restored from __doc__ """ x.__getattribute__('name') <==> x.name """ pass def __getitem__(self, y): # real signature unknown; restored from __doc__ """ x.__getitem__(y) <==> x[y] """ pass def __getnewargs__(self, *args, **kwargs): # real signature unknown pass def __getslice__(self, i, j): # real signature unknown; restored from __doc__ """ x.__getslice__(i, j) <==> x[i:j] Use of negative indices is not supported. """ pass def __ge__(self, y): # real signature unknown; restored from __doc__ """ x.__ge__(y) <==> x>=y """ pass def __gt__(self, y): # real signature unknown; restored from __doc__ """ x.__gt__(y) <==> x>y """ pass def __hash__(self): # real signature unknown; restored from __doc__ """ x.__hash__() <==> hash(x) """ pass def __init__(self, seq=()): # known special case of tuple.__init__ """ tuple() -> empty tuple tuple(iterable) -> tuple initialized from iterable's items If the argument is a tuple, the return value is the same object. # (copied from class doc) """ pass def __iter__(self): # real signature unknown; restored from __doc__ """ x.__iter__() <==> iter(x) """ pass def __len__(self): # real signature unknown; restored from __doc__ """ x.__len__() <==> len(x) """ pass def __le__(self, y): # real signature unknown; restored from __doc__ """ x.__le__(y) <==> x<=y """ pass def __lt__(self, y): # real signature unknown; restored from __doc__ """ x.__lt__(y) <==> x<y """ pass def __mul__(self, n): # real signature unknown; restored from __doc__ """ x.__mul__(n) <==> x*n """ pass @staticmethod # known case of __new__ def __new__(S, *more): # real signature unknown; restored from __doc__ """ T.__new__(S, ...) -> a new object with type S, a subtype of T """ pass def __ne__(self, y): # real signature unknown; restored from __doc__ """ x.__ne__(y) <==> x!=y """ pass def __repr__(self): # real signature unknown; restored from __doc__ """ x.__repr__() <==> repr(x) """ pass def __rmul__(self, n): # real signature unknown; restored from __doc__ """ x.__rmul__(n) <==> n*x """ pass def __sizeof__(self): # real signature unknown; restored from __doc__ """ T.__sizeof__() -- size of T in memory, in bytes """ pass tuple
6、字典(无序)
创建字典
不可变的(可哈希的)对象可以作为key值,例如元组可以作为key值,但列表是可变的则不能作为key值
dic = dict{(11,22,33):"ABC"}
person = {'name':'zhangsan','age':19}
常用操作
- 索引
print person['name'] #输出zhangsan
- 新增
dic['name']='zhang' #如果是已经存在的name则修改,如果不存在则增加 dic['hobby']='football' #如果是已经存在的name则修改,如果不存在则增加
- 删除
- 键、值、键值对
- 循环
- 长度
print len(person) #输出2,即person里面有两个键值对
基本用法总结:
person.clear() #清除person中的所有键值对 person1 = person.copy() #浅拷贝,复制出一个新的字典 print person.fromkeys(person,'xx') #产生一个新的字典,结果返回{'age': 'xx', 'name': 'xx'},如果第二个参数省略则返回{'age': None, 'name': None} print person.get('height',1.8) #person中没有key-heith所以返回第2个参数1.8,如果第二参数省略找不到返回None,如果能够找到返回key对应的value print person.has_key('name') #返回True,查询person中是否存在该key,存在返回True,不存在返回False print person.items() #返回键值对元组[('age', 20), ('name', 'zhangsan')] print person.keys() #返回keys集合['age', 'name'] print person.values() #返回value集合[20, 'zhangsan'] print person.iteritems() #返回一个字典迭代器<dictionary-itemiterator object at 0x0000000003503728>,list(person.iteritems())则返回[('age', 20), ('name', 'zhangsan')] print person.iterkeys() #返回一个字典迭代器<dictionary-keyiterator object at 0x0000000003813728>,list(person.iterkeys())则返回['age', 'name'] print person.itervalues() #返回一个字典迭代器<dictionary-valueiterator object at 0x0000000002F93728>,list(person.itervalues())则返回[20, 'zhangsan'] v = person.pop('name') #此时v返回name的value值即zhangsan,person移除了name,即变为{'age': 20};如果找不到,且第3个参数省略则抛出KeyError异常 v = person.popitem() #移除最后一组item,person变为{'name': 'zhangsan'},v返回('age', 20),不同的机器删除的结果可能不同,定义为随机删除 v = person.setdefault('height',1.8) #person={'age': 20, 'name': 'zhangsan', 'height': 1.8},height不存在则添加,并且v返回1.8,如果已存在的key则只返回不添加 person.update([('height',180)]) #person={'age': 20, 'name': 'zhangsan', 'height': 180},如果key存在则更新,如果不存在则添加 v = person.viewitems() #person不变,v返回dict_items([('age', 20), ('name', 'zhangsan')]) v = person.viewkeys() #person不变,v返回dict_keys(['age', 'name']) v = person.viewvalues() #person不变,v返回dict_values([20, 'zhangsan'])
其他详细功能及代码
class dict(object): """ dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2) """ def clear(self): # real signature unknown; restored from __doc__ """ 清除内容 """ """ D.clear() -> None. Remove all items from D. 移除所有的项目""" pass def copy(self): # real signature unknown; restored from __doc__ """ 浅拷贝 """ """ D.copy() -> a shallow copy of D """ pass @staticmethod # known case def fromkeys(S, v=None): # real signature unknown; restored from __doc__ """ dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v. v defaults to None. 一个新的列表,keys=S,values=v,v默认为none """ pass def get(self, k, d=None): # real signature unknown; restored from __doc__ """ 根据key获取值,d是默认值 ,省略默认为None""" """ D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. """ pass def has_key(self, k): # real signature unknown; restored from __doc__ """ 是否有key """ """ D.has_key(k) -> True if D has a key k, else False """ return False def items(self): # real signature unknown; restored from __doc__ """ 所有项的列表形式 """ """ D.items() -> list of D's (key, value) pairs, as 2-tuples """ return [] def iteritems(self): # real signature unknown; restored from __doc__ """ 项可迭代 """ """ D.iteritems() -> an iterator over the (key, value) items of D """ pass def iterkeys(self): # real signature unknown; restored from __doc__ """ key可迭代 """ """ D.iterkeys() -> an iterator over the keys of D """ pass def itervalues(self): # real signature unknown; restored from __doc__ """ value可迭代 """ """ D.itervalues() -> an iterator over the values of D """ pass def keys(self): # real signature unknown; restored from __doc__ """ 所有的key列表 """ """ D.keys() -> list of D's keys """ return [] def pop(self, k, d=None): # real signature unknown; restored from __doc__ """ 获取并在字典中移除 """ """ D.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised 移除制定的key并且返回相应的value. 如果key没有找到,那么如果制定了d返回参数d,否则抛出KeyError的异常 """ pass def popitem(self): # real signature unknown; restored from __doc__ """ 获取并在字典中移除 """ """ D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple; but raise KeyError if D is empty. 移除并且作为(key,value)一对元组返回,如果D是空的那么抛出KeyError异常 """ pass def setdefault(self, k, d=None): # real signature unknown; restored from __doc__ """ 如果key不存在,则创建,如果存在,则返回已存在的值且不修改 """ """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D 相当于D.get(k,d),并且如果k不在D中那么设置 D(k)=d""" pass def update(self, E=None, **F): # known special case of dict.update """ 更新 {'name':'alex', 'age': 18000} [('name','sbsbsb'),] """ """ D.update([E, ]**F) -> None. Update D from dict/iterable E and F. If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k] 更新D从字典或可迭代的对象E和F 若果E存在并且有一个.keys()的方法,会执行这句:for k in E: D[k] = E[k] 若果E存在并且没有一个.keys()的方法,会执行这句:for (k, v) in E: D[k] = v 无论哪种情况,这会跟随执行这句:for k in F: D[k] = F[k] """ pass def values(self): # real signature unknown; restored from __doc__ """ 所有的值 """ """ D.values() -> list of D's values """ return [] def viewitems(self): # real signature unknown; restored from __doc__ """ 所有项,只是将内容保存至view对象中 """ """ D.viewitems() -> a set-like object providing a view on D's items """ pass def viewkeys(self): # real signature unknown; restored from __doc__ """ D.viewkeys() -> a set-like object providing a view on D's keys """ pass def viewvalues(self): # real signature unknown; restored from __doc__ """ D.viewvalues() -> an object providing a view on D's values """ pass def __cmp__(self, y): # real signature unknown; restored from __doc__ """ x.__cmp__(y) <==> cmp(x,y) """ pass def __contains__(self, k): # real signature unknown; restored from __doc__ """ D.__contains__(k) -> True if D has a key k, else False """ return False def __delitem__(self, y): # real signature unknown; restored from __doc__ """ x.__delitem__(y) <==> del x[y] """ pass def __eq__(self, y): # real signature unknown; restored from __doc__ """ x.__eq__(y) <==> x==y """ pass def __getattribute__(self, name): # real signature unknown; restored from __doc__ """ x.__getattribute__('name') <==> x.name """ pass def __getitem__(self, y): # real signature unknown; restored from __doc__ """ x.__getitem__(y) <==> x[y] """ pass def __ge__(self, y): # real signature unknown; restored from __doc__ """ x.__ge__(y) <==> x>=y """ pass def __gt__(self, y): # real signature unknown; restored from __doc__ """ x.__gt__(y) <==> x>y """ pass def __init__(self, seq=None, **kwargs): # known special case of dict.__init__ """ dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2) # (copied from class doc) """ pass def __iter__(self): # real signature unknown; restored from __doc__ """ x.__iter__() <==> iter(x) """ pass def __len__(self): # real signature unknown; restored from __doc__ """ x.__len__() <==> len(x) """ pass def __le__(self, y): # real signature unknown; restored from __doc__ """ x.__le__(y) <==> x<=y """ pass def __lt__(self, y): # real signature unknown; restored from __doc__ """ x.__lt__(y) <==> x<y """ pass @staticmethod # known case of __new__ def __new__(S, *more): # real signature unknown; restored from __doc__ """ T.__new__(S, ...) -> a new object with type S, a subtype of T """ pass def __ne__(self, y): # real signature unknown; restored from __doc__ """ x.__ne__(y) <==> x!=y """ pass def __repr__(self): # real signature unknown; restored from __doc__ """ x.__repr__() <==> repr(x) """ pass def __setitem__(self, i, y): # real signature unknown; restored from __doc__ """ x.__setitem__(i, y) <==> x[i]=y """ pass def __sizeof__(self): # real signature unknown; restored from __doc__ """ D.__sizeof__() -> size of D in memory, in bytes """ pass __hash__ = None dict
其他:
1、for循环
for key in person: #单个打印输出key print key for value in person.values(): #单个打印输出value print value for item in person.items(): #单个打印输出键值对 print item
2、enumerate可为迭代的对象添加序号
li = ['zhao','qian','sun','li'] for key,value in enumerate(li): #enumeraate在循环的时候自动添加0开始自增1的key print key,value 结果: 0 zhao 1 qian 2 sun 3 li
3、range和xrange
range和xrange用来生成制定范围内的数
python2.x中range会直接在内存中生成序列,而xrange是通过迭代的方式实现,在遍历的时候才生成,所以xrange速度更快,在产生非常大的数字范围时,建议用xrange
python3.x中取消xrange,但其range变为通过迭代的方式实现
利用range实现遍历列表:
li = ['zhao','qian','sun','li'] for i in range(0,len(li)): print li[i]
for i in range(10,0,-1): print(i) #输出:10 9 8 7 6 5 4 3 2 1