一些Python知識點

來源:互聯網
上載者:User

標籤:

0. 新與舊

兩種reverse

>>> L = [1,2,3,4]>>> R = L[::-1] # new object>>> R[4, 3, 2, 1]>>> L.reverse() # in place>>> L[4, 3, 2, 1]>>>

 

兩種sort

>>> sorted(r) # new object[’black’, ’blue’, ’green’, ’red’, ’white’]>>> r[’white’, ’black’, ’green’, ’blue’, ’red’]>>> r. sort() # in-place>>> r[’black’, ’blue’, ’green’, ’red’, ’white’]

 

1. 函數參數

def f(a, b, c=0, *argc, **kw):
  print a, b, c, argc, kw

>>> f(1, 2, 3, ‘a‘, ‘b‘, ‘c‘, key=‘value‘)
1 2 3 (‘a‘, ‘b‘, ‘c‘) {‘key‘: ‘value‘}

a, b為必選參數,c預設參數,argc可變參數,kw為關鍵字參數。傳入函數時,argc是一個tuple,kw為dict。

注意預設參數,一定要指向不可變變數。否者多個函數的同一參數可能指向同一個instance

>>> def foo(bar=[]):       ...    bar.append("baz") ...    return bar>>> foo()["baz"]>>> foo()["baz", "baz"]>>> foo()["baz", "baz", "baz"]>>> def foo(bar=None):...    if bar is None:        # or if not bar:...        bar = []...    bar.append("baz")...    return bar...>>> foo()["baz"]>>> foo()["baz"]>>> foo()["baz"]

 

 

 

2. 迭代

  • 判斷是否可迭代,使用Iterable
>>> from collections import Iterable>>> isinstance(‘string‘, Iterable)True>>> isinstance([1,2,3], Iterable)True>>> isinstance(123, Iterable)False
  • 引入下標,可用enumerate
>>> for i, v in enumerate([‘a‘, ‘b‘, ‘c‘]):...     print i, v...0 a1 b2 c>>>
  • 同時迭代多個list,使用函數zip
>>> for i, j in zip([1,2,3], [‘a‘, ‘b‘, ‘c‘]):...     print i, j...1 a2 b3 c

 

3. List Comprehension中的if-else

>>> L = [‘We‘, ‘are‘, 42, ‘ALONE‘, ‘!‘]>>> [s.lower() if isinstance(s,str) else s for s in L][‘we‘, ‘are‘, 42, ‘alone‘, ‘!‘]

 

4. class

http://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide

限定class的成員

__slots__

>>> class Student(object):...     __slots__ = (‘name‘, ‘age‘) ...

 

5. exception


檢查多個異常,需要放在tuple內

>>> try:...     l = ["a", "b"]...     int(l[2])... except (ValueError, IndexError) as e:  ...     pass...>>>

 

一些Python知識點

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.