list之extend方法的一個錯誤使用案例分析
阿新 • • 發佈:2019-02-14
直接上程式碼:
>>> values = ['first']
>>> values
['first']
>>> values.extend('second')
>>> values
['first', 's', 'e', 'c', 'o', 'n', 'd']
>>> values.extend(['third'])
>>> values
['first', 's', 'e', 'c', 'o', 'n', 'd', 'third']
>>>
這裡,我們的本意是希望把second字串作為一個元素加到列表中,但結果並非如預期所示。正確的方法是如third那樣,明確構造一個list物件。
為此,查閱list的extend()方法的幫助資訊:
| extend(...)
| L.extend(iterable) -- extend list by appending elements from the iterable
即入參是一個iterable型別的物件,把這個物件中的每個元素新增列表中。
對於values.extend('second'),其入參是'second',它是一個字串,而字串也是一個iterable型別的物件,它的元素就是組成這個字串的一個個字元,即's', 'e', ……。這就是把每隔字元作為一個元素新增到列表中的原因。
如果要把一個字串作為一個列表元素加進去,就要把構造一個list,且把字串作為該列表的一個元素。
關於iterable,請參見下一篇文章。