说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 抽取(下标订阅)是指使用方括号 []
访问序列(比如字符串、元组、列表)或映射(比如字典)对象的元素。
在Python中使用下标订阅的一些例子:
访问字符串的元素:
name = "John"
print(name[0]) # J
print(name[-1]) # n
访问列表的元素:
nums = [1, 2, 3, 4]
print(nums[1]) # 2
print(nums[-2]) # 3
访问元组的元素:
point = (10, 20)
print(point[0]) # 10
访问字典的值:
dict = {"a": 1, "b": 2}
print(dict["a"]) # 1
print(dict["b"]) # 2
方括号中的下标或键用于访问序列或映射对象中对应的元素。我们可以使用正下标从开始访问元素,使用负下标从末尾访问元素。下标订阅为Python中方便地读取和写入元素提供了一种快捷方式。
Python 抽取(下标订阅)操作使用方括号 []
,它针对两种数据类型:
对一个 容器类 的实例执行抽取操作通常将会从该容器中选取一个元素。 而对一个 泛型类 执行抽取操作通常将会返回一个 GenericAlias 对象。
subscription ::= primary "[" expression_list "]"
当一个对象被抽取时,解释器将对原型和表达式列表进行求值。
原型必须可被求值为一个支持抽取操作的对象。 一个对象可通过同时定义 __getitem__()
和 __class_getitem__()
或其中之一来支持抽取操作。 当原型被抽取时,表达式列表的求值结果将被传给以上方法中的一个。 对于在何时会调用 __class_getitem__
而不是 __getitem__
的更多细节,请参阅 __class_getitem__
与 __getitem__
。
如果表达式列表包含至少一个逗号,它将被求值为包含该表达式列表中所有条目的 tuple。 在其他情况下,表达式列表将被求值为列表中唯一成员的值。
对于内置对象,有两种类型的对象支持通过 __getitem__()
执行抽取操作:
正式语法规则并未在 序列 中设置负索引号的特殊保留条款。 不过,内置序列都提供了通过给索引号加上序列长度来解读负索引号的 __getitem__()
方法,因此举例来说,x[-1] 将选取 x 的最后一项。 结果值必须为一个小于序列中条目数的非负整数,抽取操作会选取索引号为该值的条目(从零开始计数)。 由于对负索引号和切片的支持位于对象的 __getitem__()
方法中,因而重载此方法的子类将需要显式地添加这种支持。
字符串 是一种特殊的序列,其中的项是 字符。 字符并不是一种单独的数据类型而是长度恰好为一个字符的字符串。
更新时间:Sept. 17, 2023, 11:55 a.m. 标签:python 抽取 订阅