http://developer.51cto.com/art/201003/186006.htm
Python编程语言是一款比较容易学习的计算机通用型语言。对于初学者来说,首先需要掌握的就是其中的一些基础应用。比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技巧。
Python字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成。字典的键必须是不可改变的类型,如:字符串,数字,tuple;值可以为任何Python数据类型。
1、新建Python字典
- >>> dict1={} #建立一个空字典
- >>> type(dict1)
- < type 'dict'>
2、增加Python字典元素:两种方法
- >>> dict1['a']=1 #第一种
- >>> dict1
- {'a': 1}
- #第二种:setdefault方法
- >>> dict1.setdefault('b',2)
- 2
- >>> dict1
- {'a': 1, 'b': 2}
3、删除Python字典
- #删除指定键-值对
- >>> dict1
- {'a': 1, 'b': 2}
- >>> del dict1['a'] #也可以用pop方法,dict1.pop('a')
- >>> dict1
- {'b': 2}
- #清空字典
- >>> dict1.clear()
- >>> dict1 #字典变为空了
- {}
- #删除字典对象
- >>> del dict1
- >>> dict1
- Traceback (most recent call last):
- File "< interactive input>", line 1, in < module>
- NameError: name 'dict1' is not defined
4)对字典的遍历
python 代码
>>> table = {'abc':1, 'def':2, 'ghi':3}
>>> for key in table.keys():
print key, '/t', table[key]
abc 1
ghi 3
def 2
Python字典嵌套字典与排序
http://muilpin.blog.163.com/blog/static/16538293620113112549775/
背景:计算图形中任意点与点的曼哈顿距离:
x=[1,2,3,4,5,6,7,8,9,2]
y=[2,3,2,5,6,7,2,3,5,5]
n=10
distance=[[0 for j in range(n)]for i in range(n)]
定义二层嵌套字典与二维数组:
result={}
for i in range(n):
result[str(i)]={} #定义嵌套字典
另外定义二维数组与字典方式不一样:
n=16
distance=[[0 for j in range(n)]for i in range(n)]
给字典赋值:
for i in range(n):
for j in range(n):
distance[i][j]=abs(x[i]-y[j]) #计算曼哈顿距离
result[str(i)][str(j)]=distance[i][j]
字典按照值(values)排序:
result_sort[i]=[(k,v) for (k,v) in result[str(i)].iteritems()] #将嵌套中第二维字典的转变成列表
使用列表排序函数sorted()排序:
result_sort[i]=sorted(result_sort[i],key=lambda x:x[1],reverse=False)
Python多维/嵌套字典数据无限遍历
http://www.cnblogs.com/lhj588/archive/2012/05/24/2516046.html