[英]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.