列表中有多個元素時,怎麼查找這些元素呢?對列表通常有兩種處理:
查找元素是否在列表中;
查找元素在列表中的哪個位置(元素的索引)。
in
關鍵字
要找出某個元素是否在列表中,可以使用 in
關鍵字,例如:
if 'a' in letters: print "found 'a' in letters"else: print "didn't find 'a' in letters"
'a' in letters
部分是一個布爾或邏輯表達式。如果 a 在這個列表中,它會返回值 True
,否則返回 False
。
術語箱
布爾(boolean)是一種只使用兩個值(1 和 0,或者 true 和 false)的算術運算。這是數學家喬治 · 布爾發明的,用
and
、or
和not
來結合 true 和 false 條件(由 1 和 0 表示)時,就會用到布爾運算,我們在第 7 章中已經見過。
可以在交互模式中試試下面的命令:
>>> 'a' in lettersTrue>>> 's' in lettersFalse
可以看到,名為 letters
的列表中確實包含一個元素 a,但是不包含元素 s。所以 a 在列表中,而 s 不在列表中。現在可以結合使用 in
和 remove
編寫一些代碼,保證即使值不在列表中也不會給出錯誤:
if 'a' in letters: letters.remove('a')
查找索引
為了找出一個元素位於列表中的什麼位置,可以使用 index
方法,如下:
>>> letters = ['a', 'b', 'c', 'd', 'e']>>> print letters.index('d')3
所以我們知道 d 的索引是 3,這說明它是列表中的第 4 個元素。
就像 remove
一樣,如果在列表中沒有找到這個值,index
會給出一個錯誤,所以最好結合使用 in
,就像這樣:
if 'd' in letters: print letters.index('d')