本节将学习元组、字典,以及其他涉及到的相关知识
1.元组 (tuple)
元组由圆括号括起来,元素之间用逗号相隔。元组是不可变对象,一旦定义了,就不能更改
>>> t=('a','b','c') >>> t[1] 'b' >>> t[1]=4 Traceback (most recent call last): File "<pyshell#27>", line 1, in <module> t[1]=4 TypeError: 'tuple' object does not support item assignment
元组只有tuple.index() 和tuple.count() 两个方法。
tuple.index(x) 返回元组中第一个元素值为x的索引
tuple.count(x) 统计并返回元组中元素值为x的个数
>>> t=('a','b','c','c',1,2) >>> t.index('c') 2 >>> t.index(1) 4 >>> t.count('c') 2 >>> t.count(1) 1
定义元组可以使用以下方法:
>>> t='x','y',1,2,3 >>> t ('x', 'y', 1, 2, 3) >>> t='122334', >>> t ('122334',) >>> len(t) 1
元组的其他用法:
>>> t=123,234,'asss' >>> x,y,z=t >>> x 123 >>> y 234 >>> z 'asss' >>> t (123, 234, 'asss') >>> for i in t: print i 123 234 asss >>> u=t,(1,2,3) >>> u ((123, 234, 'asss'), (1, 2, 3))
2.字典(dict)
字典是由{key1:value,key2:value}形式组成。字典是可变的对象。key值必须唯一。 字典是不能通过像列表那样用排好序的数字来索引的,必须通过key来引用某个值,并且是没有先后顺序的。
以下是字典的使用例子:
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> d['name'] 'Jack' >>> d['age'] 10 >>> for i in d.keys(): print d[i] 10 Jack feman
字典不能直接通过key,新增一个key:value
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> d['address':'china'] Traceback (most recent call last): File "<pyshell#69>", line 1, in <module> d['address':'china'] TypeError: unhashable type
字典能通过已有的key,更改该key的value值:
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> d['age']=20 >>> d {'age': 20, 'name': 'Jack', 'sex': 'feman'}
字典还能通过del函数,删除指定key:value
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> del(d['age']) >>> d {'name': 'Jack', 'sex': 'feman'}
我们还可以通过dict() 来新建一个字典
>>> d=dict(name='Flack',age=10,sex='man') >>> d {'age': 10, 'name': 'Flack', 'sex': 'man'} >>> d=dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]) >>> d {'sape': 4139, 'jack': 4098, 'guido': 4127} >>> d=dict((['sape', 4139], ['guido', 4127], ['jack', 4098])) >>> d {'sape': 4139, 'jack': 4098, 'guido': 4127}
3.字典(dict)的函数
dict.clear() 清空字典,使字典为空。 而del(dict)是删除字典
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> d.clear() >>> d {} >>> d={'name':'Jack','age':10,'sex':'feman'} >>> del(d) >>> d Traceback (most recent call last): File "<pyshell#100>", line 1, in <module> d NameError: name 'd' is not defined
dict.copy() 复制一个和dict一样的字典
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> c=d.copy() >>> d.clear() >>> d {} >>> c {'age': 10, 'name': 'Jack', 'sex': 'feman'}
dict.fromkeys(S[,v]) ,S里的元素(元素可能重复,重复的只取一个,不会报错)作为键,v作为所有键的值,v 的默认值为 None。返回一个新的字典
>>> d={'name':'Jack','age':10,'sex':'feman'} >>> c=d.fromkeys('name','lirong') >>> c {'a': 'lirong', 'e': 'lirong', 'm': 'lirong', 'n': 'lirong'} >>> c=d.fromkeys('namee','lirong') >>> c {'a': 'lirong', 'e': 'lirong', 'm': 'lirong', 'n': 'lirong'}
dict.get(k[,d]) 如果dict中的键k存在,取dict[k]的值,如果不存在,则取d,d默认为None
>>> c={1:2,2:3,3:4} >>> print c.get(1,2) 2 >>> print c.get(5,2) 2 >>> print c.get(3,2) 4
dict.has_key(k) 判断dict中是否存在键k,若有,返回true,若无,返回false
>>> c={1:2,2:3,3:4} >>> c.has_key(1) True >>> c.has_key(10) False
dict.items() 将dict的key:value转换成元组[(key1,value1),(key2,value2)..]
>>> c={1:2,2:3,3:4} >>> c.items() [(1, 2), (2, 3), (3, 4)]
dict.iteritems() 将dict的key:value转换成一个迭代器
>>> c={1:2,2:3,3:4} >>> f=c.iteritems() >>> f.next() (1, 2) >>> f.next() (2, 3)
dict.iterkeys()将dict的键key转换成一个迭代器
>>> c={1:2,2:3,3:4} >>> f=c.iterkeys() >>> f.next() 1 >>> f.next() 2
dict.itervalues() 将dict的值Value转换成一个迭代器
>>> c={1:2,2:3,3:4} >>> f=c.itervalues() >>> f.next() 2 >>> f.next() 3
dict.keys() 以列表的形式返回dict的键
>>> c={1:2,2:3,3:4} >>> c.keys() [1, 2, 3]
dict.pop(k[,d]) 删除键为k的key:value,并返回value (如果k不存在,则返回d)
>>> c={1:2,2:3,3:4} >>> c.pop(2,10) 3 >>> c.pop(3,10) 4 >>> c.pop(3,10) 10
dict.popitem() 删除键值对,并以元组的形式返回该键值对
>>> c={1:2,2:3,3:4} >>> c.popitem() (1, 2) >>> c.popitem() (2, 3) >>> c.popitem() (3, 4) >>> c {}
dict.setdefault(k[,d]) 返回dict[k]的值,如果键k不存在,那么该函数为会新增dict[k]=d,并且返回d
>>> c {} >>> c.setdefault('name','lirong') 'lirong' >>> c {'name': 'lirong'} >>> c.setdefault('name','test') 'lirong' >>> c {'name': 'lirong'}
dict.update(F) ,用迭代器或字典F来更新dict,如果F中的元素在dict中没有,则添加到dict中
>>> c {'name': 'lirong'} >>> c.update() >>> c {'name': 'lirong'} >>> f={"a":1,"b":2} >>> c.update(f) >>> c {'a': 1, 'b': 2, 'name': 'lirong'}
dict.values() 以列表的形式返回dict的value值
>>> c {'a': 1, 'b': 2, 'name': 'lirong'} >>> c.values() [1, 2, 'lirong']