• Python cookbook笔记——可迭代对象的分解


    1.将序列分解为单独的变量

    1.1序列的分解

    1)简单赋值操作即可实现序列的分解,要求是变量总数和结构要与序列相吻合

    2)不仅仅是元组或者列表,只要对象恰好是可迭代的,就可以执行分解操作(如字符串、文件、迭代器、生成器)

    3)分解操作时,有时候不需要某些值,可以选用一个用不到的变量名(常用 _ 或 ign )来作为要丢弃的值的名称(ign表示ignored)

    p = (4, 5)
    x, y = p
    print(x, y)

    data = ['ACME', 50, 91.1, (2012, 12, 21)]
    name, shares, price, date = data
    print(date)

    s = 'Hello'
    a, b, c, d, e = s
    print(a, b)

    1.2从任意长度的可迭代对象中分解元素

    "  *表达式 " 的应用

    *修饰的变量可以位于列表的第一个位置,最后一个位置或者是中间位置

    也可以用*表达式来丢弃好几个值  如 *_

    records = [
    ('foo', 1, 2),
    ('bar', 'hello'),
    ('foo', 3, 4)
    ]


    def do_foo(x, y):
    print('foo', x, y)


    def do_bar(s):
    print('bar', s)


    for tag, *args in records:
    if tag == 'foo':
    do_foo(*args)
    elif tag == 'bar':
    do_bar(*args)

    保留最后的N个元素(应用 collections.deque)

    from collections import deque


    def search(lines, pattern, history=5):
    previous_lines = deque(maxlen=history)
    for line in lines:
    if pattern in line:
    yield line, previous_lines
    previous_lines.append(line)


    # Example use a file
    if __name__ == '__main__':
    with open('class_study.py') as fobj:
    for line, prevlines in search(fobj, 'print', 5):
    for pline in prevlines:
    print(pline, end=' ')
    print(line, end=' ')
    print('-'*20)
  • 相关阅读:
    React组件化编程
    React入门
    typeof与instanceof比较+undefined与null各种值的相互比较
    JavaScript 数组去重
    JavaScript数组降维
    了解JS单线程和任务队列!
    clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop
    ES6—Set和Map
    数组+排序--知识点总结
    java scanner
  • 原文地址:https://www.cnblogs.com/QiLF/p/9318904.html
Copyright © 2020-2023  润新知