Python系统学习第二十一课

给大家补充几个高级函数

  • zip
    • 把两个可迭代内容生成一个可迭代的tuple元素类型组成的内容
#zip案例
l1 = [1,2,3,4]
l2 = [5,6,7,8,9]
l3 = zip(l1,l2)
for i in l3:
    print(i)
(1, 5)
(2, 6)
(3, 7)
(4, 8)

enumerate

  • 跟zip功能比较像
  • 对可迭代对象里的每一个元素,配上一个索引,然后索引和内容构成tuple类型
l1 = [1,2,3,4,5]
l2 = enumerate(l1)
l3 = [i for i in l2]
print(l3)
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
l1 = [1,2,3,4,5]
l2 = enumerate(l1, start=100)   #从100 开始计算
l3 = [i for i in l2]
print(l3)
[(100, 1), (101, 2), (102, 3), (103, 4), (104, 5)]

collections模块

  • namedtuple
  • deque
# namedtuple
# tuple类型
# 是一个可命名的tuple
import collections
Point = collections.namedtuple("Point", ['x','y'])
p = Point(11,22)
print(p.x)
print(p[0])
11
11
Circle = collections.namedtuple("Circle", ['x','y', 'r'])
C = Circle(100,20,30)
print(C)
Circle(x=100, y=20, r=30)

dequeue

  • 比较方便的解决了频繁删除插入带来的效率问题
from collections import deque
q = deque(['a','b','c'])
print(q)
q.append("d")
print(q)
q.appendleft("e")  #前边插入
print(q)
deque(['a', 'b', 'c'])
deque(['a', 'b', 'c', 'd'])
deque(['e', 'a', 'b', 'c', 'd'])

defaultdict

  • 当直接读取dict不存在的属性时,直接返回默认值
d1 = {"one":1,"second":2,"three":3}
print(d1['one'])
1
from collections import defaultdict
func = lambda : "lizi"
d2 = {"one":1,"second":2,"three":3}
d2 = defaultdict(func)
print(d2['four'])
lizi

counter

  • 统计字符串个数
from collections import Counter
#为什么不把字符串作为一个键值,而是以一个字符作为键值
#需要括号里边的内容为可迭代
c = Counter("dgdgfbfdbfbvh h,x;';.[oep.[xkluruiy xdhkung ]]'")
print(c)
Counter({'d': 4, 'g': 3, 'f': 3, 'b': 3, 'h': 3, ' ': 3, 'x': 3, 'u': 3, ';': 2, "'": 2, '.': 2, '[': 2, 'k': 2, ']': 2, 'v': 1, ',': 1, 'o': 1, 'e': 1, 'p': 1, 'l': 1, 'r': 1, 'i': 1, 'y': 1, 'n': 1})
c = Counter("aa","ss","ww")
print(c)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-24-d89b309a3daa> in <module>()
----> 1 c = Counter("aa","ss","ww")
      2 print(c)


H:\Anaconda\lib\collections\__init__.py in __init__(*args, **kwds)
    531         self, *args = args
    532         if len(args) > 1:
--> 533             raise TypeError('expected at most 1 arguments, got %d' % len(args))
    534         super(Counter, self).__init__()
    535         self.update(*args, **kwds)


TypeError: expected at most 1 arguments, got 3
s = ["aa","ss","ww"]
c = Counter(s)
print(c)
Counter({'aa': 1, 'ss': 1, 'ww': 1})

调试技术

  • 调试流程
    • 单元测试- >继承测试->交测试部
    • 分类
      • 静态调试
      • 动态调试
  • pycharm调试
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值