問題是
有沒有哪個模塊有一個方便的函式,可以接收一個字串和其中的字符索引,并回傳字串中的字符的行號和列號?
例子
[1]Lorem ipsum dolor sit amet, consectetur
[2] sit amet hendrerit lorem auctor. 無人問津
[3] 孕媽咪們,你們知道嗎?
[3] egestas diam, sed semper justo. 仔細想想,你會發現,在這個世界上,沒有什么比這更重要的了。
[4] vulputate eget tempor in, tempor sit amet orci.
[5] Etiam sollicitudin porta odio, eu dignissim est
我想獲得第45個字符的行號和列。它將是第二行的第6個字符(如果我沒算錯的話)
我為什么要這樣做我正在決議一個字串,當我不能決議某些東西時,我想引發例外。用更通俗的方式來說。我想決議一個包含某種語言代碼的字串,如果代碼中的某些內容違反了語言的規則,我想引發一個例外。我想在例外資訊中包含一個字符的行號和列號,但我只有該字符的索引。
uj5u.com熱心網友回復:
這似乎是標準Python庫的一個簡單應用。可能這個庫沒有足夠方便的介面,但它足夠容易撰寫:
def line_col(str, idx) 。
""回傳一個2元組,將字串索引'idx'轉換為
行數和列數。idx'是一個普通的基于0的Python索引。
行和列是基于1的。所以 line_col(str, 0) 將回傳 (1, 1)。
換行符被認為是一行的最后一個字符
行的最后一個字符。
該函式不檢查'idx'是否在范圍內;如果idx大于
大于或等于'str'的長度,其結果將如同
str'有(idx 1 - len(str))額外的字符(其中沒有
換行符)附加到結尾
""
return str.count('
', 0, idx) 1, idx - str.rfind('
', 0, idx)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/315101.html
標籤:
