字典
*一系列"键—值(key—value)"对
*通过键查找相对应的值
*类似于纸质字典,通过单词索引表找到相对应的定义
C++:map | Java:HashTable orHashMap
*在字典中,键值对是无序的
1.创建字典
*使用{}创建字典
*使用:指明 键:值 对
*键必须是不可变的且不重复的,值可以是任意类型
In [1]: my_dict={'dch':130,'yuguo':154,'Mike':187}
In [2]: type(my_dict)
Out[2]: dict
2.访问字典
*使用[]运算符,键作为索引
In [3]: print my_dict['dch']
130
In [4]: print my_dict['Tom']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-4-3255783270ac> in <module>()
----> 1 print my_dict['Tom']
KeyError: 'Tom'
注:不能索引不存在的键
*增加一个新的对
In [5]: my_dict['Tom']=178
In [6]: my_dict['Tom']
Out[6]: 178
3.字典的运算符和方法
*len(my_dict) #统计字典中键值对的数量
In [7]: my_dict
Out[7]: {'Mike': 187, 'Tom': 178, 'dch': 130, 'yuguo': 154}
In [8]: len(my_dict)
Out[8]: 4
*key in my_dict #快速判断key是否为字典中的键
——>等家于 my_dict.has_key(key)
In [9]: 'Mike' in my_dict
Out[9]: True
In [10]: 'nihao' in my_dict
Out[10]: False
*for key in my_dict: #梅举字典中的键,注:键是无序的
In [11]: for key in my_dict:
....: print key
....:
Mike
yuguo
dch
Tom
In [12]:
*my_dict.items() #返回全部的键值对,以列表的方式
In [12]: my_dict.items()
Out[12]: [('Mike', 187), ('yuguo', 154), ('dch', 130), ('Tom', 178)]
*my_dict.keys() #返回全部的键,以列表的方式
In [14]: my_dict.keys()
Out[14]: ['Mike', 'yuguo', 'dch', 'Tom']
*my_dict.values() #返回全部的值
In [15]: my_dict.values()
Out[15]: [187, 154, 130, 178]
*my_dict.clear #清空字典
In [16]: my_dict.clear()
In [17]: my_dict
Out[17]: {}
集合
*建立
x=set()
x={key1,key2,...}
In [1]: x=set()
In [2]: type(x)
Out[2]: set
In [3]: x.
x.add x.issubset
x.clear x.issuperset
x.copy x.pop
x.difference x.remove
x.difference_update x.symmetric_difference
x.discard x.symmetric_difference_update
x.intersection x.union
x.intersection_update x.update
x.isdisjoint
In [3]: x.add('dch')
In [4]: x
Out[4]: {'dch'}
*添加与删除
x.add('Bob') #添加
x.remove('Bob') #删除
n [3]: x.add('dch')
In [4]: x
Out[4]: {'dch'}
In [5]: x.remove('dch')
In [6]: x
Out[6]: set()