专栏名称: 新语数据故事汇
《新语数据故事汇,数说新语》科普数据科学、讲述数据故事,深层次挖掘数据价值。
目录
相关文章推荐
51好读  ›  专栏  ›  新语数据故事汇

一文带您精通 Python 列表:操作方法、技巧与最佳实践

新语数据故事汇  · 公众号  ·  · 2024-08-08 10:04

正文

列表(list)是 Python 中最常见且最基础的数据结构之一,它是一个存储对象的容器,可以包含任何类型的对象,包括字符串、数字,甚至其他对象。列表还可以混合存储不同类型的数据。掌握列表的各种操作,如创建、添加、排序等,不仅可以提高编程效率,还能简化数据处理过程。

基本操作

接下来将了解添加、移除或访问列表元素的不同方法。从添加元素的方法开始。

添加元素

可以使用 append() 方法在列表末尾添加一个元素,或者使用 insert() 方法在指定位置添加一个元素。对于添加多个元素,最好的方法是使用 extend()

fruits = ['apple', 'banana']
# Adds at the endfruits.append('cherry') fruits

# Inserts at position 1fruits.insert(1, 'orange') fruits

# Adds multiple itemsfruits.extend(['date', 'elderberry',100])fruits

  • append() 和 extend() 在各自的用途上都很高效。append() 具有常数时间复杂度,使其在添加单个元素时非常高效。

  • insert():对于较长的列表来说,可能效率不高,因为列表中的所有后续元素可能需要移动以为新元素腾出空间。

  • extend() 比在循环中使用 append() 添加多个元素更高效,因为它最小化了反复调整列表大小的开销。

移除元素

移除元素的方法有多种:

  • 使用 del 根据索引或切片删除元素。

  • 使用 pop() 删除指定位置的元素(如果没有指定位置,则删除最后一个元素)。

  • 使用 remove() 根据值删除元素。

# Removes by valuefruits.remove('banana')fruits

popped_fruit = fruits.pop(2) print(popped_fruit)fruits

del fruits[0]fruits

  • remove(value):删除给定值的第一个实例。当你知道要删除的值但不知道其位置时,这个方法非常有用。

  • pop(index):删除指定位置的对象并返回它。如果未提供索引,则删除并返回最后一个元素。当你确切知道要删除的对象的位置或需要返回已删除的对象时,这个方法非常适合。

  • del list[index]:从给定的切片或索引中删除项目。被删除的对象不会被返回。当你根据位置删除切片或项目且不需要返回已删除的对象时,这个方法非常理想。

访问元素和切片

使用元素的索引是访问列表中元素的简单方法。对列表进行切片可以获取其中的一个子集。

first_fruit = fruits[0]first_fruit

# Gets a slice from index 1 to 2fruit_slice = fruits[1:3]fruit_slice

  • 索引访问:当需要列表中的特定元素时,这是理想的方法。就像从书架上选择一本书,确切地知道它的位置。

  • 切片:适用于多种需求。就像在书架上选择两个位置之间的一系列书。

搜索和排序列表

搜索元素

in 关键字可以用来检查列表中是否存在某个元素。使用 index() 方法可以进行更深入的搜索,例如确定某个元素的索引。以下是相关代码。

fruits = ['apple', 'banana', 'cherry']# Returns True if 'banana' is in the listis_banana_present = 'banana' in fruitsis_banana_present

# Gets the index of 'banana'  banana_index = fruits.index('banana')banana_index

排序列表

sort() 方法用于就地排序,会直接修改原始列表,使排序变得简单。使用 sorted() 可以获取排序后的列表副本,而不改变原始列表。

numbers = [3, 1, 4, 1, 5, 9, 2]# Sorts the list in-placenumbers.sort()  print(numbers)
# Returns a new sorted list. The original remains unchangedsorted_numbers = sorted(numbers)sorted_numbers






请到「今天看啥」查看全文