列表中有多个元素时,怎么查找这些元素呢?对列表通常有两种处理:
查找元素是否在列表中;
查找元素在列表中的哪个位置(元素的索引)。
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')