![](/img/trans.png)
[英]what's the difference between str.split(“list, ' ' ”) and str.split(list, ' ')
[英]What is the difference between list += str and list += str,
今天我在做一些python列表操作時發現了一個奇怪的行為。
可以說,
a = []
b = 'xy'
當我這樣做時,解釋器返回+ = b:
a += b
a == ['x', 'y']
但當我這樣做時,+ = b,(用逗號)解釋器返回= ['xy']
a += b,
a == ['xy']
有人可以解釋一下這里發生了什么。
a += b
當a
是列表時,此操作類似於a.extend(b)
。 所以它迭代對象b
,將每個元素追加到a
。
如果你迭代字符串'xy'
,它會產生兩個元素'x'
和'y'
。
如果你迭代元組'xy',
,它會產生一個元素'xy'
。
這條線
a += b,
相當於
a += (b, )
它創建一個帶有一個項目的元組。 如果添加,則將項目'xy'
添加到a
。
如果你添加一個像'xy'
這樣的字符串,它就會被視為一個字符序列,並且每個序列項(字符)都被單獨添加到a
字符串中。
所以基本上逗號將b
包裝成一個元組。
逗號創建tuple
- 所以a += b,
表示與a += (b,)
a += ('xy', )
你添加一個元素的元組,所以它幾乎像
a += ['xy']
所以你有了
a = [] + ['xy']
給出了結果
a = ['xy']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.