标签:Python与Excel,pandas
这是一个重要的话题,因为我们将在pandas中大量使用这些技术。Python列表索引和切片是指如何从列表或类似数组的对象中选择和筛选数据。这里讨论的技术也适用于元组。
列表(List)与元组(Tuple)
如果你熟悉VBA或其他编程语言,Python列表和元组基本上都是数组。列表或元组可以包含任何类型的对象/数据,它们之间的区别在于列表是可变的(可以修改),元组是不可变的(不能修改)。
有趣的事实是:String(字符串)对象实际上是一个元组!这意味着你不能修改字符串对象中的单个字母。
准备列表
我们将使用一个简单的列表来演示这些技术。在本文中,我们不需要任何库,只需要纯Python列表操作。注意,Python使用基于0的索引,这意味着索引从0开始,而不是从1开始。
li = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’]
li2 = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]
图1:Python列表演示
Python列表基本操作
Python列表只有几个内置函数,这里介绍其中的几个:
选择项目元素
图2
从列表末尾访问项目元素
图3
切片/选择各种项目
python列表使用符号[n:m]来表示一个“切片”,字面上是指从第n项到第m项的多个连续项。Python列表切片有一种奇怪的表示法:开始项使用基于0的索引,而结束项使用基于1的索引。参阅下面的代码和视觉辅助工具以供参考。
图4
图5
上述切片从第二个元素(1)开始,在第五个元素(5)结束,分别是B和E。
在下列情况下,可以省略起始索引或结束索引:
反转列表
有两种方法可以反转列表。一种是内置方法,另一种是通过切片。
注意:
图6
合并不同的列表
有两种方法可以合并不同的列表:.extend()方法或只使用+符号。
图7
从列表中删除重复值
列表可以包含任何类型的数据项,包括重复项。有几种方法可以删除重复的值,这里将介绍一种更具python风格的方法。为此,我们需要了解另一种数据结构:集(set)。集是不同项的无序集合,使用一对花括号来表示集。
这里的思路是首先将列表转换为一个集(因此保留不同的项),然后将集转换回列表。参见以下示例:
图8