YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Simplified subtitles

← cs101_unit3_26_p_index

dummy description

Get Embed Code
5 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. [Evans] 定义find_element还有很多其他方法。
  2. 下面我将展示一种方法,这种方法利用另一个内建列表操作,
  3. 我们尚未介绍这个操作,但是这大大简化了find_element的编写。
  4. 这个操作叫做索引。
  5. 索引方法在列表上被调用。
  6. 你传入一个值,索引的输出是那个值存在于列表中的位置。
  7. 所以这个内建索引几乎完全按照我们的心意解决了find_element。
  8. 不同之处在于,当我们在列表上调用索引,而该列表不包含我们传入的值,
  9. 索引不会返回 - 1。而是显示出错。
  10. 我们来看看Python解释器中的情况。
  11. 我将定义一个变量p并传入列表0,1,2的值。
  12. 如果我们在p上调用索引,传入2,我们得到的结果是2,
  13. 也就是2这个值在p中的位置。
  14. 第二个例子中,我们多加两个2到列表中,
  15. 我们看到,它总是显示第一个2。
  16. 所以,p索引返回的结果是找到值2的第一个位置。
  17. 现在我们将试着传入一个列表中不存在的元素。
  18. 我们看到,结果不是 - 1,而是显示出错,
  19. 我们要找的目标元素在列表中不存在。
  20. 所以,如果我们想让find_element完全按照要求行事,
  21. 我们就不能直接使用索引。
  22. 但还有其他一些可能很有帮助的列表操作。
  23. 总结一下索引方法的功能,
  24. 如果传入的值存在于列表中,过程返回找到这个值的第一个位置。
  25. 这正是我们想让find_element做的。
  26. 问题在于,如果这个值在列表中找不到,过程就会显示出错。
  27. 还有一个列表操作可以帮助我们使用索引来编写find_element,
  28. 这种方法也对其他很多事情有帮助,那就是单词in
  29. 我们已经见过in被使用在for循环中。
  30. 这里,我们使用同一个词in,但是在这个语境下,它的意义有所不同。
  31. 这个句法是在in的左边放一个值,in后面跟一个列表。
  32. 这个句法与我们之前见到的Python语言相比有些奇怪。
  33. 它看起来不像一个过程调用,但是,在用英文对这个内容进行表达时,
  34. 用它是非常自然的。
  35. 如果我们说:“3在列表中吗?”
  36. 我们用Python语言写出来就是3 in p。
  37. 我们看看解释器中的情况。
  38. 现在我打印出3 in p的结果。
  39. 3不在列表中,所以打印出来的为假。
  40. 如果我把它改成2 in p,
  41. 我们得到的值为真。
  42. 总结一下in操作的功能,
  43. 如果值存在于列表中,输出为真。
  44. 反之为假。
  45. 类似地,我们可以使用 not in。
  46. Not in正好与in相反。
  47. 如果值不存在于列表中,那么not in 列表结果的值为真。
  48. 如果这个值存在于列表中,那么not in 列表结果的值为假。
  49. 〈value〉not in〈list〉完全等同于 not〈value〉in〈list〉
  50. 采用not in的唯一原因是,在英文中,这比把not放在值和in之间
  51. 读起来更顺一些,
  52. 现在检查一些你是否理解了索引,in和not in等操作。
  53. 我想让你试着再次定义find_element过程。
  54. 它跟我们之前的定义功能一模一样。
  55. 它会给出我们搜索的元素位置,如果该元素存在,
  56. 如果不存在,它会显示 - 1
  57. 但是这次,不用while循环或for循环
  58. 你试试看是否能够使用索引来定义它。