簡體   English   中英

python字符串索引訪問的時間復雜度?

[英]Time complexity of python string index access?

如果我沒弄錯的話,Python字符串存儲在unicode標量中。 但是,unicode標量可以組合形成其他字形簇。 因此,對於string[n]使用內存位移start + scalarSize * n不是您正在尋找的答案。

這是否意味着Python在每個標量中線性迭代以獲得您正在尋找的標量? 如果你有

word = 'caf' + char(65) + char(301) #café

Python是否將其存儲為五個標量,並在繼續之前迭代檢查是否應該組合任何標量,還是在插入時運行檢查並存儲“純”標量?

編輯:我用另一種語言混淆了Python。 Python的print()打印出字形集群,但Python的str存儲標量,無論你如何輸入它們。 因此,兩個組合標量將打印為一個字形集群,該集群可能與另一個標量集群相同。 當你去調用string[0]你會得到插入字符串的標量。

Python字符串索引不考慮字形集群。 它適用於Unicode代碼點。 我不認為Python實際上有任何內置的用於處理字形集群。

字符串索引需要恆定的時間,但是如果要檢索第n個字形集群,則字符串索引不會為您執行此操作。

(人們有時建議在字符串中應用規范組合,但是在規范組合之后仍有許多可能的字形集群仍需要多個代碼點。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM