首页 » 与孩子一起学编程 » 与孩子一起学编程全文在线阅读

《与孩子一起学编程》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')