这几天没写代码,
练一下代码。
找的书是<python cookbook>第三版的电子书。
*这个操作符,运用得好,确实少很多代码,且清晰易懂。
p = (4, 5) x, y = p print(x) print(y) s = 'Hello' a, b, c, d, e = s print(a, b, c) data = ['ACME', 50, 91.1, (2012, 12, 21)] _, shares, price, _ = data print(shares, price) def drop_first_last(grades): first, *middle, last = grades return middle print(drop_first_last([23, 34, 45, 56, 67, 78, 12, 23])) record = ('Dave', 'dave@example.com', '773-555-1212', '847-555-1212') name, email, *phone_numbers = record print(name, email, phone_numbers) *trailing_qtrs, current = [10, 8, 7, 1, 9, 5, 10, 3] trailing_avg = sum(trailing_qtrs) / len(trailing_qtrs) print(current, trailing_avg) 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) line = 'nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false' uname, *fields, homedir, sh = line.split(':') print(uname, homedir, sh) record = ('ACME', 50, 123.45, (12, 18, 2012)) name, *_, (*_, year) = record print(name, year) items = [1, 10, 7, 4, 5, 9] head, *tail = items print(head, tail) def sum(items): head, *tail = items return head + sum(tail) if tail else head print(sum(items))
输出:
4 5 H e l 50 91.1 [34, 45, 56, 67, 78, 12] Dave dave@example.com ['773-555-1212', '847-555-1212'] 3 7.142857142857143 foo 1 2 bar hello foo 3 4 nobody /var/empty /usr/bin/false ACME 2012 1 [10, 7, 4, 5, 9] 36 Process finished with exit code 0