Python中為什么str([1,2,3])的長度為9,也就是為什么1前面沒有空格,但是2,3前面都有一個空格?
uj5u.com熱心網友回復:
應該是str的原因,你len(list([1, 2, 3]))試試uj5u.com熱心網友回復:
你用了str 相當于把里面都轉化成了字符,長度當然不是3了
uj5u.com熱心網友回復:
沒有找到對應的原始碼,但是大致可以解釋:執行str([1,2,3])的時候,會對對內容進行格式處理:'[1, 2, 3]'(請注意現在在2和3之前都有一個空格,也符合PEP8的規范),所以也就是在整個字串中多增加了2個空白字符,3個數字,2個逗號,2個左右中括號,總共加起來就是9個字符,長度等于9.
我再找找相關的原始碼,確實沒有注意到這個細節!
uj5u.com熱心網友回復:
因為1前面沒空格字符,逗號后面有空格字符uj5u.com熱心網友回復:
list以后不是顯示很清楚嗎?正好9個字符呀前后‘[', ']',中間有2個空格,再加上逗號和字母不是正好9個嗎?[1,2,3]里面的元素是數值型的,如果直接用str轉換的話,它會把每一個顯示的符號都轉換成字符,包括方括號,逗號,空格和字母,這是系統的顯示格式。
如果你想得到字串的'123'就得先把數值轉換成字符,然后再相連接。
>>>
>>> a = ''.join([str(i) for i in [1,2,3]])
>>> a
'123'
>>> len(a)
3
uj5u.com熱心網友回復:
如果不考慮數值和字符轉換,只想要串列的長度,直接len([1,2.3])就ok了。>>> len([1,2,3])
3
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/198821.html
