1. 深拷貝與淺拷貝 Python中對象的賦值都是進行對象引用(記憶體位址)傳遞 使用copy.copy(),可以進行對象的淺拷貝,它複製了對象,但對於對象中的元素,依然使用原始的引用. 如果需要複製一個容器物件,以及它裡面的所有元素(包含元素的子項目),可以使用copy.deepcopy()進行深拷貝 對於非容器類型(如數字、字串、和其他’原子’類型的對象)沒有被拷貝一說 如果元祖變數只包含原子類型對象,則不能深拷貝。
2.使用Counter進行計數統計
#!/usr/bin/env python# encoding: utf-8"""@python version: python3.6.1@author: XiangguoSun@contact: sunxiangguodut@qq.com@site: http://blog.csdn.net/github_36326955@software: PyCharm@file: counter.py@time: 5/7/2017 7:32 PM"""from collections import Counterdata = ['a', '2', 2, 4, 5, '2', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']print(Counter(data))print(list(Counter(data).elements())) """Counter(data).elements()擷取Counter中的key值,是一個chain的迭代器"""print(Counter(data).most_common(2)) """找出前n個出現頻率最高的元素以及他們對應的次數"""print(Counter(data)['y']) """訪問不存在的元素時,返回0,而不是KeyError異常""""""output:Counter({'a': 3, '2': 2, 4: 2, 5: 2, 2: 1, 'b': 1, 7: 1, 'd': 1, 'z': 1})['a', 'a', 'a', '2', '2', 2, 4, 4, 5, 5, 'b', 7, 'd', 'z'][('a', 3), ('2', 2)]0""""""update()用於被統計對象元素的更新,原有Count計數器對象與新增元素的統計計數值相加。subtract()用於實現計數器對象中統計值相減,允許有負值。"""c = Counter("success")print(c)c.update("successfully")print(c)c.subtract("successzz")print(c)"""output:Counter({'s': 3, 'c': 2, 'u': 1, 'e': 1})Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'l': 2, 'f': 1, 'y': 1})Counter({'s': 3, 'u': 2, 'c': 2, 'l': 2, 'e': 1, 'f': 1, 'y': 1, 'z': -2})"""a = Counter(a=1,b=2,c=3,d=1)print(a) # output Counter({'c': 3, 'b': 2, 'a': 1, 'd': 1})3.