什麼是 .join() 以及它如何在連接字串中發揮作用?
Python 的 .join() 方法通常用於字串級聯。然而,在測試所提供的範例時,它產生了意想不到的結果。了解此方法的目的和用法可以闡明其行為的原因。
.join() 方法對字串進行操作,並採用可迭代的元素作為參數。它在連接期間在可迭代的每個元素之間插入指定的字串。
例如:
",".join(["a", "b", "c"]) # Output: 'a,b,c'
在提供的範例中:
array.array('c', random.sample(string.ascii_letters, 20 - len(strid))) .tostring().join(strid)
tostring()方法將字元陣列轉換為類似位元組的物件。然後,這個類似位元組的物件與字串「595」一起用作 .join() 的輸入。
但是,要理解的關鍵點是字串“595”被視為一個列表它的單個字符,即[“5”,“9”,“5”]。因此,「.join()」對此列表進行操作,在每個字元之間插入類似位元組的物件:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5 ^ ^ ^
輸出中的每個「5」、「9」、「 5」表示插入
要實現預期的串聯,可以使用運算符:
array.array('c', random.sample(string.ascii_letters, 20 - len(strid))) .tostring() + strid
這種方法直接連接bytes-like對象具有字串“595”的對象,產生所需的輸出,而無需在字元之間插入任何內容。
以上是為什麼連接字串和類似位元組的物件時「.join()」會產生意外結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!