国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python Sequence type

Ali_ / 1724人閱讀

摘要:其實本來是要一下的,就去查了一下是什么意思,發現還有很多要注意的地方,所以就記一下。

其實本來是要reverse一下list的,就去查了一下list[::-1]是什么意思,發現還有很多要注意的地方,所以就記一下。
主要是參照https://docs.python.org/3/library/stdtypes.html?highlight=list#list

首先Sequence type有三種

list

tuple

range

slice

[i:j:k]表示的是slice of s from i to j with step k, 對三種類型都有用

>>> a = [1, 2, 3]
>>> a[::-1]
[3, 2, 1]
>>> a = (1, 2, 3)
>>> a[::-1]
(3, 2, 1)
>>> a = range(3)
>>> a[::-1]
range(2, -1, -1)

range中參數是range(start, stop[, step])

initialize a list

s * n表示的是n shallow copies of s concatenated
注意是淺拷貝哦,所以會有如下情況

>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]

如果元素不是對象的話就沒關系

>>> lists = [0] * 3
>>> lists
[0, 0, 0]
>>> lists[0] = 1
>>> lists
[1, 0, 0]

正確的初始化嵌套list的方法應該是

>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
concatenation pitfall

(感覺還是英文說的清楚些,這一點跟Java是一樣的)
Concatenating immutable sequences always results in a new object. This means that building up a sequence by repeated concatenation will have a quadratic runtime cost in the total sequence length. To get a linear runtime cost, you must switch to one of the alternatives below:

str.join()或者寫入io.StringIO

bytes.join()或者寫入io.BytesIO或者使用可變的bytearray

使用list代替tuple

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/37391.html

相關文章

  • Python源碼理解: '+=' 和 'xx = xx + xx�

    摘要:前菜在我們使用的過程很多時候會用到運算例如輸出不光在加法中使用在字符串的拼接也同樣發揮這重要的作用例如輸出同樣的在列表中也能使用例如輸出為什么上面不同的對象執行同一個會有不同的效果呢這就涉及到的重載然而這不是本文要討論的重點上面的只是前菜而 前菜 在我們使用Python的過程, 很多時候會用到+運算, 例如: a = 1 + 2 print a # 輸出 3 不光在加法中使用, 在...

    learning 評論0 收藏0
  • Python進階:自定義對象實現切片功能

    摘要:以自定義字典為例僅作演示,不保證其它功能的完備性貓輸出結果上例的關鍵點在于將字典的鍵值取出,并對鍵值的列表做切片處理,其妙處在于,不用擔心索引越界和負數索引,將字典切片轉換成了字典鍵值的切片,最終實現目的。 2018-12-31 更新聲明:切片系列文章本是分三篇寫成,現已合并成一篇。合并后,修正了一些嚴重的錯誤(如自定義序列切片的部分),還對行文結構與章節銜接做了大量改動。原系列的單篇...

    yangrd 評論0 收藏0
  • Redis-py官方文檔翻譯

    摘要:采取兩種實現命令其一類盡量堅持官方語法,但是以下除外沒有實現,應該是線程安全的原因。線程安全性是線程安全的。由于線程安全原因,不提供實現,因為它會導致數據庫的切換。 官網:https://github.com/andymccurd...當前版本:2.10.5注:這不是完整翻譯,只提取了關鍵信息。省略了部分內容,如lua腳本支持。 pip install redis pip instal...

    Alfred 評論0 收藏0

發表評論

0條評論

Ali_

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<