【Python】字典
世界Skill
Python中的字典是最为强大的数据类型,你几乎可以用它做任何事情(当然他仅仅是一种数据类型,不要要求太高了)。
1.形式:
至于在python里字典是如何实现的就不废话了,有兴趣的可以去找字典和哈希表的关系,这里指讲一些实用的东西。
首先说明,字典是无序的。
字典的构造形式如下:
d={
key1: value1,
key2: value2
}
其中keyn为键,valuen为键所对应的值,显而易见,二者是成对的关系。
注意,在写的时候你并不能由于让他显得好看而这么写:
d=
{
key1: value1,
key2: value2
}
当然如果有兴趣完全可以尝试一下ww。
2.构造:
字典无疑是强大的,他可以让你用任何类型(无论它是数值、字符串,还是函数、对象),进行索引,索引返回的值也可以是任何的类型。
这也就是说,我们完全可以构造一个以下的字典:
class a():
def __init__(self):
print '1'
A=a()
>>>1
def xx():
print '1'
d={
1:'1',
'a':'a',
A:xx,
xx:A
}
这个字典包含了以下信息:
键1(整型)对应值'1'(字符串)
键'a'(字符串)对应值'a'(字符串)
键A(对象)对应值xx(函数)
键xx(函数)对应值A(对象)
当然,我们也可以这么做:
d={
'a':[1,A,xx],
'b':{
'1':1
}
}
列表和字典同样没有任何问题。
3.方法:
字典常用的方法无非是索引、列举、添加、删除、排序。
1.索引:
索引有两种方式,一种是常用的做法:
d['1']
这句话会返回键'1'对应的值。
虽然常用,但这个方法会在某些情况下出现问题——当键值不存在的状况下,此方法会报错。
这里就会用到另一种方法:
d.get('1')
这个方法当键不存在的状况下会返回None。
2.列举:
有三个方法直接列举出字典里的内容(当然用for也可以):
第一个方法为:
d.items()
此方法返回一个列表,列表里有若干元祖,每一个元祖内为一对键和值。
第二个方法为:
d.keys()
此方法返回一个列表,列表由键构成。
第三个方法为:
d.values()
同上,不过返回的是值而不是键。
3.添加:
有时候需要向字典内添加一对键值,方法很简单,如下:
d[newkey]=newvalue
如此便添加了一对键值newkey:newvalue。
4.删除:
如果想要删除一对键值,如此即可:
del d['a']
如果想要一次清空字典,可使用:
d.clear()
5.排序:
由于字典是无须的,所以可能在一些需要顺序的时候带来麻烦,这样就要求我们去对它排序,一般以下方法即可:
sorted(d)
默认按照键升序排列,字符串按照ascii码处理。
如果想指定值排序或者降序,可以使用:
sorted(d,key=lambda d: d[0],True)
第一个参数是要排序的字典,第二个参数key是排序指定的对象,后面跟了一个lambda表达式,对于字典d[0]为键,d[1]为值,最后一个属性指定升序还是降序,默认False,升序。
4.应用:
一个例子:
#建立空字典
d={}
#添加键值:
d['ch1']=['name','color']
#更新值:
A=CH()
d['ch1'].append(A)
#使用值内对象:
print d['ch1'][2].name
#删除键值:
del d['ch1']
#删除字典:
del d