首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》12.11 搜索列表

关灯直达底部

列表中有多个元素时,怎么查找这些元素呢?对列表通常有两种处理:

  • 查找元素是否在列表中;

  • 查找元素在列表中的哪个位置(元素的索引)。

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)的算术运算。这是数学家乔治 · 布尔发明的,用 andornot 来结合 true 和 false 条件(由 1 和 0 表示)时,就会用到布尔运算,我们在第 7 章中已经见过。

可以在交互模式中试试下面的命令:

>>> 'a' in lettersTrue>>> 's' in lettersFalse  

可以看到,名为 letters 的列表中确实包含一个元素 a,但是不包含元素 s。所以 a 在列表中,而 s 不在列表中。现在可以结合使用 inremove 编写一些代码,保证即使值不在列表中也不会给出错误:

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')