本文概述
- 列表
- 索引
- 结束!
列表列表写在方括号[和]中, 其中的各项用逗号(, )分隔。列表是异构项目的可变存储集合。让我们分解一下语句:可变是什么意思?可变意味着你可以更改列表的内容而无需实际更改其标识。异类项目是什么意思?这意味着列表可以在其内部保存混合值, 例如整数, 浮点数, 字符串等。列表内置于Python中, 因此你无需单独调用它们。首先定义一个列表:
list_x = [] #Empty list
list_x # Print the list to see its contents
[]
list_x = [1, 'two', 3.0]
list_x
[1, 'two', 3.0]
list_y = [1, 2, 3]
list_y
[1, 2, 3]
以上都是列表的示例。 list_x是异构项目的列表, 因为它包含整数, 字符串和浮点数。而list_y保存同类项目-仅整数。
现在, 假设你需要从list_x访问字符串值” two” 以进行操作。这是你的处理方式:
value = http://www.srcmini.com/list_x[1]
print('How do you spell 2?', value)
How do you spell 2? two
列表索引在Python中以0开头。因此, 索引值1为0, “ 二” 为1, 而3为2。
但是, 如果你知道要访问的值却不知道该值将显示在列表中怎么办?还是它甚至存在于列表中?这是index()方法派上用场的时候。
索引方法index()返回列表中最低的索引, 其中搜索到的元素出现在列表中。如果搜索不存在的任何元素, 则返回ValueError。
让我们尝试一下:
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 3
list_numbers.index(element)
2
list_numbers = [4, 5, 6, 7, 8, 9, 10]
element = 3 # Not in the list
list_numbers.index(element) # Throws a ValueError
---------------------------------------------------------------------------ValueErrorTraceback (most recent call last)<
ipython-input-35-6a006c988b06>
in <
module>
()
1 list_numbers = [4, 5, 6, 7, 8, 9, 10]
2 element = 3 # Not in the list
---->
3 list_numbers.index(element) # Throws a ValueErrorValueError: 3 is not in list
让我们尝试使用字符串元素:
list_numbers = [1, 'two', 3, 4, 5, 6, 7, 8, 9, 10]
element = 'two'
list_numbers.index(element)
1
返回最低索引是什么意思?
假设你有一个元素的多个实例, 然后index()将为你提供该元素出现的第一个位置。
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
element = 3
list_numbers.index(element)
0
返回的位置是0, 因为3在Python的第一个位置或第0个索引中首先出现。
这是内部发生的情况:索引正在遍历从第一个位置(第一个索引)开始的所有值, 查找你要搜索的元素, 并在找到值后立即返回位置并退出系统。但是, 这在浏览大型列表时不太有效, 你需要将某些东西的位置移到列表的末尾。
index()为你提供一个选项, 以提示你所搜索的值可能在哪里。
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 7
list_numbers.index(element, 5, 8)
6
因此语法为:list_name.index(element, start, stop)。
此处的开始和结束值是可选的。实际上, 仅在完全确定范围时才使用它, 否则将出现如下所示的ValueError。
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 7
list_numbers.index(element, 1, 5)
---------------------------------------------------------------------------ValueErrorTraceback (most recent call last)<
ipython-input-39-b96f4b5e51d5>
in <
module>
()
1 list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2 element = 7
---->
3 list_numbers.index(element, 1, 5)ValueError: 7 is not in list
【Python列表index()用法】奖励:由于index()仅将第一个匹配项返回给对象, 因此, 如果你需要列表中更多匹配项的位置, 则可以使用列表理解或生成器表达式。方法如下:
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
[i for i, n in enumerate(list_numbers) if n == 3] # List comprehension
[0, 3, 4, 8]
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
g = (i for i, n in enumerate(list_numbers) if n == 3) # Generator expression
print("Generators store values, the first value here is:", next(g), ". Then the next is:", next(g), "followed by ", next(g), "and finally ", next(g))
Generators store values, the first value here is: 0. Then the next is: 3 followed by4 and finally8
结束!恭喜, 你刚刚了解了Python中的index()函数。你已经了解了它如何帮助你使用列表。还向你介绍了一些新概念。有关列表理解的更多信息, 请查看srcmini的Python列表理解教程。 srcmini的Python迭代器教程提供了有关生成器和生成器表达式的更多信息。
推荐阅读
- 使用Python进行网页爬取
- R中的层次聚类
- 在Python中使用模块
- 如何在SQL中执行Python/R
- 图像超分辨率使用多解码器框架
- 使用Python和BeautifulSoup 4抓取Reddit
- u盘病毒查杀|图文详细说明U盘病毒查杀工具
- u盘装系统_图文详细说明怎样用U盘装系统
- 如何运用u盘给笔记本做系统,图文详细说明安装办法