Python字典与集合操作总结

来源:互联网 发布:模拟对话软件 编辑:程序博客网 时间:2024/06/01 09:30
[python] view plaincopy
  1. 一.创建字典  
  2. 方法①:  
  3. >>> dict1 = {}  
  4. >>> dict2 = {'name''earth''port'80}  
  5. >>> dict1, dict2  
  6. ({}, {'port'80'name''earth'})  
  7.   
  8. 方法②:从Python 2.2 版本起  
  9. >>> fdict = dict((['x'1], ['y'2]))  
  10. >>> fdict  
  11. {'y'2'x'1}  
  12.   
  13. 方法③:  
  14. 从Python 2.3 版本起, 可以用一个很方便的内建方法fromkeys() 来创建一个"默认"字典, 字  
  15. 典中元素具有相同的值 (如果没有给出, 默认为None):  
  16. >>> ddict = {}.fromkeys(('x''y'), -1)  
  17. >>> ddict  
  18. {'y': -1'x': -1}  
  19. >>>  
  20. >>> edict = {}.fromkeys(('foo''bar'))  
  21. >>> edict  
  22. {'foo'None'bar'None}  
  23.   
  24. 二.如何访问字典中的值  
  25.   
  26. ①要想遍历一个字典(一般用键), 你只需要循环查看它的键, 像这样:  
  27. >>> dict2 = {'name''earth''port'80}  
  28. >>>  
  29. >>>> for key in dict2.keys():  
  30. ... print 'key=%s, value=%s' % (key, dict2[key])  
  31. ...  
  32. key=name, value=earth  
  33. key=port, value=80  
  34.   
  35. ②从Python 2.2 开始  
  36. 在 for 循环里遍历字典。  
  37. >>> dict2 = {'name''earth''port'80}  
  38. >>>  
  39. >>>> for key in dict2:  
  40. ... print 'key=%s, value=%s' % (key, dict2[key])  
  41. ...  
  42. key=name, value=earth  
  43. key=port, value=80  
  44.   
  45.   
  46. 要得到字典中某个元素的值, 可以用你所熟悉的字典键加上中括号来得到:  
  47. >>> dict2['name']  
  48. 'earth'  
  49. >>>  
  50. >>> print 'host %s is running on port %d' % \  
  51. ... (dict2['name'], dict2['port'])  
  52. host earth is running on port 80  
  53.   
  54.   
  55. ③字典所有的方法。方法has_key()和 in 以及 not in 操作符都是布尔类型的  
  56. >>> 'server' in dict2 # 或 dict2.has_key('server')  
  57. False  
  58. >>> 'name' in dict # 或 dict2.has_key('name')  
  59. True  
  60. >>> dict2['name']  
  61. 'earth'  
  62. 一个字典中混用数字和字符串的例子:  
  63. >>> dict3 = {}  
  64. >>> dict3[1] = 'abc'  
  65. >>> dict3['1'] = 3.14159  
  66. >>> dict3[3.2] = 'xyz'  
  67. >>> dict3  
  68. {3.2'xyz'1'abc''1'3.14159}  
  69.   
  70.   
  71. 三.更新字典  
  72.   
  73. 采取覆盖更新  
  74. 上例中 dict2['name']='earth';  
  75. 更新 dict2['name']='abc';  
  76.   
  77. 四.删除字典元素和字典  
  78. del dict2['name'# 删除键为“name”的条目  
  79. dict2.clear() # 删除dict2 中所有的条目  
  80. del dict2 # 删除整个dict2 字典  
  81. dict2.pop('name'# 删除并返回键为“name”的条目  
  82.   
  83. dict2 = {'name''earth''port'80}  
  84. >>> dict2.keys()  
  85. ['port''name']  
  86. >>>  
  87. >>> dict2.values()  
  88. [80'earth']  
  89. >>>  
  90. >>> dict2.items()  
  91. [('port'80), ('name''earth')]  
  92. >>>  
  93. >>> for eachKey in dict2.keys():  
  94. ... print 'dict2 key', eachKey, 'has value', dict2[eachKey]  
  95. ...  
  96. dict2 key port has value 80  
  97. dict2 key name has value earth  
  98.   
  99.   
  100. update()方法可以用来将一个字典的内容添加到另外一个字典中  
  101.   
  102. {'server''http''port'80'host''venus'}  
  103. >>> dict3.clear()  
  104. >>> dict3  
  105. >>> dict3  
  106.   
  107.   
  108. 五.映射类型相关的函数  
  109.   
  110. >>> dict(x=1, y=2)  
  111. {'y'2'x'1}  
  112. >>> dict8 = dict(x=1, y=2)  
  113. >>> dict8  
  114. {'y'2'x'1}  
  115. >>> dict9 = dict(**dict8)  
  116. >>> dict9  
  117. {'y'2'x'1}  
  118.   
  119. dict9 = dict8.copy()  
  120.   
  121. 字典内建方法:  
  122.   
  123. 字典key值:dict9.keys()  
  124.   
  125. 字典值: dict9.values()  
  126.   
  127. 字典所有项:dict9.items()  
  128.   
  129. 返回字典值:dict9.get('y')  
  130.   
  131. 表 7.2 字典类型方法  
  132.   
  133. 方法名字        操作  
  134.   
  135. dict.cleara() 删除字典中所有元素  
  136.   
  137. dict.copya() 返回字典(浅复制)的一个副本  
  138.   
  139. dict.fromkeysc(seq,val=None)  创建并返回一个新字典,以seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None)  
  140.   
  141. dict.get(key,default=None) 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)  
  142.   
  143. dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个  
  144. 可工作的接口。  
  145.   
  146. dict.items() 返回一个包含字典中(键, 值)对元组的列表  
  147.   
  148. dict.keys() 返回一个包含字典中键的列表  
  149.   
  150. dict.iter() 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。  
  151.   
  152. dict.popc(key[, default])  和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。  
  153.   
  154. dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。  
  155.   
  156. dict.update(dict2) 将字典dict2 的键-值对添加到字典dict  
  157.   
  158. dict.values() 返回一个包含字典中所有值的列表  
  159.   
  160. ①②③④⑤⑥⑦⑧⑨⑩  
  161. 六.集合类型  
  162. ①用集合的工厂方法 set()和 frozenset():  
  163. >>> s = set('cheeseshop')  
  164. >>> s  
  165. set(['c''e''h''o''p''s'])  
  166. >>> t = frozenset('bookshop')  
  167. >>> t  
  168. frozenset(['b''h''k''o''p''s'])  
  169. >>> type(s)  
  170. <type 'set'>  
  171. >>> type(t)  
  172. <type 'frozenset'>  
  173.   
  174. ②如何更新集合  
  175. 用各种集合内建的方法和操作符添加和删除集合的成员:  
  176. >>> s.add('z')  
  177. >>> s  
  178. set(['c''e''h''o''p''s''z'])  
  179. >>> s.update('pypi')  
  180. >>> s  
  181. set(['c''e''i''h''o''p''s''y''z'])  
  182. >>> s.remove('z')  
  183. >>> s  
  184. set(['c''e''i''h''o''p''s''y'])  
  185. >>> s -= set('pypi')  
  186. >>> s  
  187. set(['c''e''h''o''s'])  
  188.   
  189. ③删除集合  
  190. del s  
  191.   
  192. ④成员关系 (innot in)  
  193. >>> s = set('cheeseshop')  
  194. >>> t = frozenset('bookshop')  
  195. >>> 'k' in s  
  196. False  
  197. >>> 'k' in t  
  198. True  
  199. >>> 'c' not in t  
  200. True  
  201.   
  202. ⑤集合等价/不等价  
  203. >>> s == t  
  204. False  
  205. >>> s != t  
  206. True  
  207. >>> u = frozenset(s)  
  208. >>> s == u  
  209. True  
  210. >>> set('posh') == set('shop')  
  211. True  
  212.   
  213. ⑥差补/相对补集( – )  
  214. 两个集合(s 和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合s,而不属  
  215. 于集合t。差符号有一个等价的方法,difference().  
  216. >>> s - t  
  217. set(['c''e'])  
  218.   
  219. 对称差分( ^ ):对称差分是集合的XOR 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 居住证登录密码忘记怎么办 投靠中考上海居住证怎么办 嫁入广州户口怎么办 上海积分扣完了怎么办 公立小学积分不够怎么办 查不到户口信息怎么办 小孩上不到户口怎么办 离开上海上海户口怎么办? 上海没房户口怎么办 没有房照动迁怎么办 持有上海居住证怎么办准生证 换公司后公积金怎么办 换工作了住房公积金怎么办 以前买的户口怎么办 上海落户积分不够怎么办 带坏受孕了怎么办 对公转账转错了怎么办 对公转错账怎么办 银行卡转错了怎么办 人户分离证明怎么办 暂居证怎么办才快 房产证户口本信息泄漏怎么办 户主迁走了户口怎么办 户口本丢了应该怎么办 户口本遗失了应该怎么办 户口迁出河南怎么办居住证 居住证学历写错怎么办 换单位了档案怎么办 辞职一年了档案怎么办 上海租房网签怎么办 户口本主页掉了怎么办 居转户办理中离职怎么办 上海居转户没有职称怎么办 上海居转户0税单怎么办 居转户出现零税怎么办 遇假记者敲诈怎么办 液氮挥发太快怎么办 高铁上空调太冷怎么办 文登市昆嵛酒店怎么办 厦漳泉同城包怎么办 亲戚朋友总是蹭吃蹭喝怎么办啊