Python v3.12.3 学习-05-数据结构
2018年2月14日大约 16 分钟
5. 数据结构
这一章节详细描述了您已经学到的一些内容,并添加了一些新的内容。
5.1. 列表进一步讲解
列表数据类型有更多的方法。以下是列表对象的所有方法:
# list.append(x)
# 在列表末尾添加一个项目。等效于 a[len(a):] = [x]。
# list.extend(iterable)
# 通过添加可迭代对象的所有项目来扩展列表。等效于 a[len(a):] = iterable。
# list.insert(i, x)
# 在给定位置插入一个项目。第一个参数是要插入的元素之前的索引,所以 a.insert(0, x) 在列表前面插入,而 a.insert(len(a), x) 等效于 a.append(x)。
# list.remove(x)
# 删除第一个值等于 x 的项目。如果没有这样的项目,则引发 ValueError。
# list.pop([i])
# 删除列表中给定位置的项目,并返回它。如果未指定索引,a.pop() 删除并返回列表中的最后一个项目。如果列表为空或索引超出列表范围,则引发 IndexError。
# list.clear()
# 删除列表中的所有项目。等效于 del a[:]。
# list.index(x[, start[, end]])
# 返回列表中第一个值等于 x 的项目的零基索引。如果没有这样的项目,则引发 ValueError。
# 可选参数 start 和 end 被解释为切片符号中的内容,并用于限制搜索到列表的特定子序列。返回的索引是相对于完整序列的开始而不是 start 参数的。
# list.count(x)
# 返回 x 在列表中出现的次数。
# list.sort(*, key=None, reverse=False)
# 对列表中的项目进行就地排序(可以使用参数进行排序自定义,有关它们的说明,请参见 sorted())。
# list.reverse()
# 就地反转列表的元素。
# list.copy()
# 返回列表的浅拷贝。等效于 a[:]。
以下是使用大多数列表方法的示例:
fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
fruits.count('apple') # 输出 2
fruits.count('tangerine') # 输出 0
fruits.index('banana') # 输出 3
fruits.index('banana', 4) # 从位置 4 开始查找下一个 banana,输出 6
fruits.reverse()
fruits # 输出 ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
fruits.append('grape')
fruits # 输出 ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']
fruits.sort()
fruits # 输出 ['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']
fruits.pop() # 输出 'pear'
您可能已经注意到,像 insert、remove 或 sort 这样只修改列表的方法没有打印出返回值 - 它们返回默认的 None。这是 Python 中所有可变数据结构的设计原则。
还有一件事,您可能注意到并非所有数据都可以排序或比较。例如,[None, 'hello', 10] 不能排序,因为整数不能与字符串比较,None 不能与其他类型比较。此外,还有一些类型没有定义的排序关系。例如,3+4j ` 比较不同类型的对象是合法的,前提是对象具有适当的比较方法。
例如,混合的数值类型按照它们的数值进行比较,所以 0
等于 0.0
等等。否则,解释器会引发 TypeError
异常。
参考资料
贡献者
binbin.hou