dnastar拼接反向互补序列_一起看流畅的python:序列构成的数组
深入理解 Python 中的不同序列類型,不但能讓我們避免重新發明輪子, 它們的 API 還能幫助我們把自己定義的 API 設計得跟原生的序列一樣, 或者是跟未來可能出現的序列類型保持兼容。
列表推導第一種方法,用for循環逐個向列表里添加數據。
第二種方法,就是列表推導的方法。通過for循環快速構造列表。
第三種方法是map/filter組合構造法。filter用于過濾序列,map對指定序列做映射,對每一個序列中的元素調用函數,返回新的列表。
在python2中,使用列表推導可能會造成變量泄露的問題,即列表內for循環的變量值影響到列表外相應的變量的數值。在python3中,列表推導中的for是局部變量,并不會造成變量泄露。
生成器表達式
生成器表達式與列表推導的區別就在于,生成器表達式使用的是圓括號,動態構成列表。列表推導構造時,一次性分配空間,可能會造成對內存空間的浪費,用生成器表達式則是動態擴充空間,適應需求。
元組拆包
????元組其實是對數據的記錄:元組中的每個元素都存放了記錄中一個字段 的數據,外加這個字段的位置。正是這個位置信息給數據賦予了意義。?
????如果只把元組理解為不可變的列表,那其他信息——它所含有的元素的 總數和它們的位置——似乎就變得可有可無。但是如果把元組當作一些 字段的集合,那么數量和位置信息就變得非常重要了。
元組拆包就是記錄分配給屬性的過程。
具名元組
collections.namedtuple 是一個工廠函數,它可以用來構建一個帶 字段名的元組和一個有名字的類——這個帶名字的類對調試程序有很大 幫助。
調用namedtuple方法時,傳入兩個參數,第一個是元組名字(或可當成類的名字),第二個參數就是類里面的各個屬性的名字。
切片
????在切片和區間操作里不包含區間范圍的最后一個元素是 Python 的風格, 這個習慣符合 Python、C 和其他語言里以 0 作為起始下標的傳統。
????可以用 s[a:b:c] 的形式對 s 在 a 和 b 之間以 c 為間隔取值。c 的值還可以為負,負值意味著反向取值。
????如果把切片放在賦值語句的左邊,或把它作為 del 操作的對象,我們就 可以對序列進行嫁接、切除或就地修改操作。
序列的+和*
????通常 + 號兩側的序列由 相同類型的數據所構成,在拼接的過程中,兩個被操作的序列都不會被 修改,Python 會新建一個包含同樣類型數據的序列來作為拼接的結果。
my_list = [[]] * 3 來初始化一個 由列表組成的列表,但是你得到的列表里包含的 3 個元素其實是 3 個引用,而且這 3 個引用指向的都是同一個列表。
根據實際情況可選擇列表推導:
喜歡掃碼關注
總結
以上是生活随笔為你收集整理的dnastar拼接反向互补序列_一起看流畅的python:序列构成的数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件夹显示psd预览(在文件夹浏览下怎么
- 下一篇: pythonqt库_Python QT组