字符串里的縫隙是什么
在Python中求一個(gè)字符串里,某子字符(串)出現(xiàn)的次數(shù)。
大家都懂得使用 count() 函數(shù),比如下面幾個(gè)常規(guī)例子:
>>> "aabb".count("a")
2
>>> "aabb".count("b")
2
>>> "aabb".count("ab")
1
但是如果我想計(jì)算空字符串的個(gè)數(shù)呢?
>>> "aabb".count("")
5
不是應(yīng)該返回 0 嗎?怎么會(huì)返回 5?
實(shí)際上,在 Python 看來(lái),兩個(gè)字符之間都是一個(gè)空字符,通俗的說(shuō)就是縫隙。
理解了這個(gè)“縫隙” 的概念后,以下這些就好理解了。
>>> (" " * 10).count("")
11
>>> "" in ""
True
>>> "" in "M"
True
x 與 +x 等價(jià)嗎?
在大多數(shù)情況下,這個(gè)等式是成立的。
>>> n1 = 10086
>>> n2 = +n1
>>>
>>> n1 == n2
True
什么情況下,這個(gè)等式會(huì)不成立呢?
由于Counter的機(jī)制,+ 用于兩個(gè) Counter 實(shí)例相加,而相加的結(jié)果如果元素的個(gè)數(shù) <= 0,就會(huì)被丟棄。
>>> from collections import Counter
>>> ct = Counter('abcdbcaa')
>>> ct
Counter({'a': 3, 'b': 2, 'c': 2, 'd': 1})
>>> ct['c'] = 0
>>> ct['d'] = -2
>>>
>>> ct
Counter({'a': 3, 'b': 2, 'c': 0, 'd': -2})
>>>
>>> +ct
Counter({'a': 3, 'b': 2})
+= 不等同于=+
對(duì)列表 進(jìn)行+= 操作相當(dāng)于 extend,而使用 =+ 操作是新增了一個(gè)列表。
因此會(huì)有如下兩者的差異。
# =+
>>> a = [1, 2, 3, 4]
>>> b = a
>>> a = a + [5, 6, 7, 8]
>>> a
[1, 2, 3, 4, 5, 6, 7, 8]
>>> b
[1, 2, 3, 4]
# +=
>>> a = [1, 2, 3, 4]
>>> b = a
>>> a += [5, 6, 7, 8]
>>> a
[1, 2, 3, 4, 5, 6, 7, 8]
>>> b
[1, 2, 3, 4, 5, 6, 7, 8]
審核編輯:湯梓紅
-
字符串
+關(guān)注
關(guān)注
1文章
595瀏覽量
23107 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4413瀏覽量
67201 -
python
+關(guān)注
關(guān)注
57文章
4866瀏覽量
89801
發(fā)布評(píng)論請(qǐng)先 登錄
無(wú)刷電機(jī)驅(qū)動(dòng)器的基礎(chǔ)知識(shí)
跟老齊學(xué)Python:從入門(mén)到精通
【「# 運(yùn)算放大器參數(shù)解析與LTspice應(yīng)用仿真」閱讀體驗(yàn)】+全書(shū)概覽與第一章閱讀分享
C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍
電機(jī)選型計(jì)算公式與知識(shí)點(diǎn)匯總
最易讀懂的理工科基礎(chǔ)叢書(shū)——圖解電機(jī)基礎(chǔ)知識(shí)入門(mén)
電氣工程師必知必會(huì)的100個(gè)電?知識(shí)點(diǎn)分享
開(kāi)關(guān)電源的基礎(chǔ)知識(shí)題目及答案(免積分)
【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)GPIO基礎(chǔ)知識(shí)
DC-DC基礎(chǔ)知識(shí) + 硬件電路
python基礎(chǔ)知識(shí)點(diǎn)(六)
評(píng)論